]> git.proxmox.com Git - mirror_frr.git/commitdiff
lib: add `%dPF` & `%dSO` formats
authorDavid Lamparter <equinox@diac24.net>
Fri, 26 Mar 2021 13:20:08 +0000 (14:20 +0100)
committerDavid Lamparter <equinox@diac24.net>
Tue, 30 Mar 2021 20:34:56 +0000 (22:34 +0200)
Just quick helpers to print `AF_*` and `SOCK_*` constants.

Signed-off-by: David Lamparter <equinox@diac24.net>
lib/sockunion.c
lib/sockunion.h

index 37bd3b841e2376cefb0df24cf989fd9731b17fd1..e6340a1743dc00d0ed232aa6f1ba91f3433cc71f 100644 (file)
@@ -752,3 +752,49 @@ int sockunion_is_null(const union sockunion *su)
                return 0;
        }
 }
+
+printfrr_ext_autoreg_i("PF", printfrr_pf)
+static ssize_t printfrr_pf(struct fbuf *buf, struct printfrr_eargs *ea,
+                          uintmax_t val)
+{
+       switch (val) {
+       case AF_INET:
+               return bputs(buf, "AF_INET");
+       case AF_INET6:
+               return bputs(buf, "AF_INET6");
+       case AF_UNIX:
+               return bputs(buf, "AF_UNIX");
+#ifdef AF_PACKET
+       case AF_PACKET:
+               return bputs(buf, "AF_PACKET");
+#endif
+#ifdef AF_NETLINK
+       case AF_NETLINK:
+               return bputs(buf, "AF_NETLINK");
+#endif
+       }
+       return bprintfrr(buf, "AF_(%ju)", val);
+}
+
+printfrr_ext_autoreg_i("SO", printfrr_so)
+static ssize_t printfrr_so(struct fbuf *buf, struct printfrr_eargs *ea,
+                          uintmax_t val)
+{
+       switch (val) {
+       case SOCK_STREAM:
+               return bputs(buf, "SOCK_STREAM");
+       case SOCK_DGRAM:
+               return bputs(buf, "SOCK_DGRAM");
+       case SOCK_SEQPACKET:
+               return bputs(buf, "SOCK_SEQPACKET");
+#ifdef SOCK_RAW
+       case SOCK_RAW:
+               return bputs(buf, "SOCK_RAW");
+#endif
+#ifdef SOCK_PACKET
+       case SOCK_PACKET:
+               return bputs(buf, "SOCK_PACKET");
+#endif
+       }
+       return bprintfrr(buf, "SOCK_(%ju)", val);
+}
index 46ab7ff20e715d5d510034cc5bfec086b34dc4bd..2cc80bb70f48f8999908cb70800908f541b71667 100644 (file)
@@ -113,6 +113,11 @@ extern int sockunion_is_null(const union sockunion *su);
 #pragma FRR printfrr_ext "%pSU"  (struct sockaddr_in *)
 #pragma FRR printfrr_ext "%pSU"  (struct sockaddr_in6 *)
 #pragma FRR printfrr_ext "%pSU"  (struct sockaddr_un *)
+
+/* AF_INET/PF_INET & co., using "PF" to avoid confusion with AFI/SAFI */
+#pragma FRR printfrr_ext "%dPF"  (int)
+/* SOCK_STREAM & co. */
+#pragma FRR printfrr_ext "%dSO"  (int)
 #endif
 
 #ifdef __cplusplus