From dc1d894a2e665882a1a018dc7b22c3d43a0c86eb Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 2 Jan 2018 00:15:03 +0900 Subject: [PATCH] socket-util: introduce parse_socket_address_bind_ipv6_only_or_bool() --- src/basic/socket-util.c | 12 ++++++++++++ src/basic/socket-util.h | 1 + 2 files changed, 13 insertions(+) diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index ce14b038a..5969aa761 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -826,6 +826,18 @@ static const char* const socket_address_bind_ipv6_only_table[_SOCKET_ADDRESS_BIN DEFINE_STRING_TABLE_LOOKUP(socket_address_bind_ipv6_only, SocketAddressBindIPv6Only); +SocketAddressBindIPv6Only parse_socket_address_bind_ipv6_only_or_bool(const char *n) { + int r; + + r = parse_boolean(n); + if (r > 0) + return SOCKET_ADDRESS_IPV6_ONLY; + if (r == 0) + return SOCKET_ADDRESS_BOTH; + + return socket_address_bind_ipv6_only_from_string(n); +} + bool sockaddr_equal(const union sockaddr_union *a, const union sockaddr_union *b) { assert(a); assert(b); diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h index 9c9e2c61c..368e6a6dd 100644 --- a/src/basic/socket-util.h +++ b/src/basic/socket-util.h @@ -123,6 +123,7 @@ int getnameinfo_pretty(int fd, char **ret); const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6Only b) _const_; SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const char *s) _pure_; +SocketAddressBindIPv6Only parse_socket_address_bind_ipv6_only_or_bool(const char *s); int netlink_family_to_string_alloc(int b, char **s); int netlink_family_from_string(const char *s) _pure_; -- 2.30.2