summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2019-08-26 16:18:40 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2019-08-26 16:19:02 +0900
commitb146ad71cc358a2ab9c813658c940d358027baa2 (patch)
treeb06332916a3ca9497ad474cbe6bec378a9e0aec2
parent5e8712404e6d757f90af23f56ac218eb4c893567 (diff)
downloadsystemd-b146ad71cc358a2ab9c813658c940d358027baa2.tar.gz
network: use DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN() macro at one more place
-rw-r--r--src/network/networkd-network.c39
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;
}