diff --git a/src/basic/af-list.c b/src/basic/af-list.c index 7e819d6d11..a9ab891e20 100644 --- a/src/basic/af-list.c +++ b/src/basic/af-list.c @@ -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; +} diff --git a/src/basic/af-list.h b/src/basic/af-list.h index 688ac63df7..9592b9ed3c 100644 --- a/src/basic/af-list.h +++ b/src/basic/af-list.h @@ -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);