socket-util: introduce parse_socket_address_bind_ipv6_only_or_bool()
This commit is contained in:
parent
8ab3934766
commit
6f90844fe2
|
@ -818,6 +818,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);
|
||||
|
|
|
@ -120,6 +120,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_;
|
||||
|
|
|
@ -497,19 +497,13 @@ int config_parse_socket_bind(const char *unit,
|
|||
|
||||
s = SOCKET(data);
|
||||
|
||||
b = socket_address_bind_ipv6_only_from_string(rvalue);
|
||||
b = parse_socket_address_bind_ipv6_only_or_bool(rvalue);
|
||||
if (b < 0) {
|
||||
int r;
|
||||
log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse bind IPv6 only value, ignoring: %s", rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = parse_boolean(rvalue);
|
||||
if (r < 0) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse bind IPv6 only value, ignoring: %s", rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
s->bind_ipv6_only = r ? SOCKET_ADDRESS_IPV6_ONLY : SOCKET_ADDRESS_BOTH;
|
||||
} else
|
||||
s->bind_ipv6_only = b;
|
||||
s->bind_ipv6_only = b;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue