From: Yu Watanabe Date: Wed, 10 Feb 2021 20:06:19 +0000 (+0900) Subject: network: dhcp: use string table X-Git-Tag: v248-rc1~152^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bde8467a0de6fd2ec0a0738d9f3f0689ae5dd37f;p=thirdparty%2Fsystemd.git network: dhcp: use string table --- diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c index e50f4bb70f0..6bac7202001 100644 --- a/src/network/networkd-dhcp-common.c +++ b/src/network/networkd-dhcp-common.c @@ -283,16 +283,9 @@ int config_parse_dhcp( /* Previously, we had a slightly different enum here, * support its values for compatibility. */ - if (streq(rvalue, "none")) - s = ADDRESS_FAMILY_NO; - else if (streq(rvalue, "v4")) - s = ADDRESS_FAMILY_IPV4; - else if (streq(rvalue, "v6")) - s = ADDRESS_FAMILY_IPV6; - else if (streq(rvalue, "both")) - s = ADDRESS_FAMILY_YES; - else { - log_syntax(unit, LOG_WARNING, filename, line, 0, + s = dhcp_deprecated_address_family_from_string(rvalue); + if (s < 0) { + log_syntax(unit, LOG_WARNING, filename, line, s, "Failed to parse DHCP option, ignoring: %s", rvalue); return 0; } diff --git a/src/network/networkd-util.c b/src/network/networkd-util.c index 83b38b2b053..b41148d2c69 100644 --- a/src/network/networkd-util.c +++ b/src/network/networkd-util.c @@ -28,6 +28,13 @@ static const char* const duplicate_address_detection_address_family_table[_ADDRE [ADDRESS_FAMILY_IPV6] = "ipv6", }; +static const char* const dhcp_deprecated_address_family_table[_ADDRESS_FAMILY_MAX] = { + [ADDRESS_FAMILY_NO] = "none", + [ADDRESS_FAMILY_YES] = "both", + [ADDRESS_FAMILY_IPV4] = "v4", + [ADDRESS_FAMILY_IPV6] = "v6", +}; + static const char* const dhcp_lease_server_type_table[_SD_DHCP_LEASE_SERVER_TYPE_MAX] = { [SD_DHCP_LEASE_DNS] = "DNS servers", [SD_DHCP_LEASE_NTP] = "NTP servers", @@ -51,6 +58,7 @@ DEFINE_STRING_TABLE_LOOKUP(routing_policy_rule_address_family, AddressFamily); DEFINE_STRING_TABLE_LOOKUP(duplicate_address_detection_address_family, AddressFamily); DEFINE_CONFIG_PARSE_ENUM(config_parse_link_local_address_family, link_local_address_family, AddressFamily, "Failed to parse option"); +DEFINE_STRING_TABLE_LOOKUP_FROM_STRING(dhcp_deprecated_address_family, AddressFamily); DEFINE_STRING_TABLE_LOOKUP(dhcp_lease_server_type, sd_dhcp_lease_server_type); int config_parse_address_family_with_kernel( diff --git a/src/network/networkd-util.h b/src/network/networkd-util.h index cc5ee35558c..0cfb009890d 100644 --- a/src/network/networkd-util.h +++ b/src/network/networkd-util.h @@ -40,6 +40,8 @@ AddressFamily routing_policy_rule_address_family_from_string(const char *s) _pur const char *duplicate_address_detection_address_family_to_string(AddressFamily b) _const_; AddressFamily duplicate_address_detection_address_family_from_string(const char *s) _pure_; +AddressFamily dhcp_deprecated_address_family_from_string(const char *s) _pure_; + const char *dhcp_lease_server_type_to_string(sd_dhcp_lease_server_type t) _const_; sd_dhcp_lease_server_type dhcp_lease_server_type_from_string(const char *s) _pure_;