]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
af-list: add helpers mapping AF_INET/AF_INET6 to "ipv4"/"ipv6"
authorLennart Poettering <lennart@poettering.net>
Mon, 10 May 2021 15:14:13 +0000 (17:14 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 11 May 2021 13:37:31 +0000 (15:37 +0200)
src/basic/af-list.c
src/basic/af-list.h

index 7e819d6d11ec9a9600c19d717c6dc55472bd75f9..a9ab891e20dc9a075f896857c343d2c567ff1668 100644 (file)
@@ -38,3 +38,15 @@ int af_from_name(const char *name) {
 int af_max(void) {
         return ELEMENTSOF(af_names);
 }
+
+const char *af_to_ipv4_ipv6(int id) {
+        /* Pretty often we want to map the address family to the typically used protocol name for IPv4 +
+         * IPv6. Let's add special helpers for that. */
+        return id == AF_INET ? "ipv4" :
+                id == AF_INET6 ? "ipv6" : NULL;
+}
+
+int af_from_ipv4_ipv6(const char *af) {
+        return streq_ptr(af, "ipv4") ? AF_INET :
+                streq_ptr(af, "ipv6") ? AF_INET6 : AF_UNSPEC;
+}
index 688ac63df755e5167e0283b5c38a14a2961341d8..9592b9ed3c92e107e8cacd734d6fe387ed17018d 100644 (file)
@@ -22,4 +22,7 @@ static inline const char* af_to_name_short(int id) {
         return f + 3;
 }
 
+const char* af_to_ipv4_ipv6(int id);
+int af_from_ipv4_ipv6(const char *af);
+
 int af_max(void);