diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2019-08-26 16:18:40 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2019-08-26 16:19:02 +0900 |
commit | b146ad71cc358a2ab9c813658c940d358027baa2 (patch) | |
tree | b06332916a3ca9497ad474cbe6bec378a9e0aec2 | |
parent | 5e8712404e6d757f90af23f56ac218eb4c893567 (diff) | |
download | systemd-b146ad71cc358a2ab9c813658c940d358027baa2.tar.gz |
network: use DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN() macro at one more place
-rw-r--r-- | src/network/networkd-network.c | 39 |
1 files changed, 13 insertions, 26 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 6a8766ce68..1d5f5517c4 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -859,7 +859,8 @@ static const char* const ipv6_privacy_extensions_table[_IPV6_PRIVACY_EXTENSIONS_ [IPV6_PRIVACY_EXTENSIONS_YES] = "yes", }; -DEFINE_STRING_TABLE_LOOKUP(ipv6_privacy_extensions, IPv6PrivacyExtensions); +DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(ipv6_privacy_extensions, IPv6PrivacyExtensions, + IPV6_PRIVACY_EXTENSIONS_YES); int config_parse_ipv6_privacy_extensions( const char* unit, @@ -873,40 +874,26 @@ int config_parse_ipv6_privacy_extensions( void *data, void *userdata) { - IPv6PrivacyExtensions *ipv6_privacy_extensions = data; - int k; + IPv6PrivacyExtensions s, *ipv6_privacy_extensions = data; assert(filename); assert(lvalue); assert(rvalue); assert(ipv6_privacy_extensions); - /* Our enum shall be a superset of booleans, hence first try - * to parse as boolean, and then as enum */ - - k = parse_boolean(rvalue); - if (k > 0) - *ipv6_privacy_extensions = IPV6_PRIVACY_EXTENSIONS_YES; - else if (k == 0) - *ipv6_privacy_extensions = IPV6_PRIVACY_EXTENSIONS_NO; - else { - IPv6PrivacyExtensions s; - - s = ipv6_privacy_extensions_from_string(rvalue); - if (s < 0) { - - if (streq(rvalue, "kernel")) - s = _IPV6_PRIVACY_EXTENSIONS_INVALID; - else { - log_syntax(unit, LOG_ERR, filename, line, 0, - "Failed to parse IPv6 privacy extensions option, ignoring: %s", rvalue); - return 0; - } + s = ipv6_privacy_extensions_from_string(rvalue); + if (s < 0) { + if (streq(rvalue, "kernel")) + s = _IPV6_PRIVACY_EXTENSIONS_INVALID; + else { + log_syntax(unit, LOG_ERR, filename, line, 0, + "Failed to parse IPv6 privacy extensions option, ignoring: %s", rvalue); + return 0; } - - *ipv6_privacy_extensions = s; } + *ipv6_privacy_extensions = s; + return 0; } |