]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: use DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN() macro at one more place 13405/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 26 Aug 2019 07:18:40 +0000 (16:18 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 26 Aug 2019 07:19:02 +0000 (16:19 +0900)
src/network/networkd-network.c

index 6a8766ce689d44b17d08fdfe5cf4123200aa2f71..1d5f5517c4e472dc3076c82970b33eb06b3e0008 100644 (file)
@@ -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;
 }