diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-03-13 19:40:22 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-03-14 00:28:19 +0900 |
commit | f225a338c39e07262e8e18850643531d76deaa06 (patch) | |
tree | 1086025dba59159d9468a159447cd47aa1fcaec7 /src/network/networkd-dhcp-common.c | |
parent | 5b7f0aaf69ee96132e84cea6c88cee9a6a2974c2 (diff) | |
download | systemd-f225a338c39e07262e8e18850643531d76deaa06.tar.gz |
network: also introduce UseDomains= for [DHCPv6] section
When we split [DHCP] section into [DHCPv4] and [DHCPv6], UseDomains=
setting was forgot to be introduced in [DHCPv6] section.
Diffstat (limited to 'src/network/networkd-dhcp-common.c')
-rw-r--r-- | src/network/networkd-dhcp-common.c | 46 |
1 files changed, 43 insertions, 3 deletions
diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c index 67e5e46dec..0de1892fc9 100644 --- a/src/network/networkd-dhcp-common.c +++ b/src/network/networkd-dhcp-common.c @@ -386,6 +386,49 @@ int config_parse_dhcp_use_dns( return 0; } +int config_parse_dhcp_use_domains( + const char* unit, + const char *filename, + unsigned line, + const char *section, + unsigned section_line, + const char *lvalue, + int ltype, + const char *rvalue, + void *data, + void *userdata) { + + Network *network = userdata; + DHCPUseDomains d; + + assert(filename); + assert(lvalue); + assert(rvalue); + assert(data); + + d = dhcp_use_domains_from_string(rvalue); + if (d < 0) { + log_syntax(unit, LOG_WARNING, filename, line, d, + "Failed to parse %s=%s, ignoring assignment: %m", lvalue, rvalue); + return 0; + } + + if (streq_ptr(section, "DHCPv4")) { + network->dhcp_use_domains = d; + network->dhcp_use_domains_set = true; + } else if (streq_ptr(section, "DHCPv6")) { + network->dhcp6_use_domains = d; + network->dhcp6_use_domains_set = true; + } else { /* [DHCP] section */ + if (!network->dhcp_use_domains_set) + network->dhcp_use_domains = d; + if (!network->dhcp6_use_domains_set) + network->dhcp6_use_domains = d; + } + + return 0; +} + int config_parse_dhcp_use_ntp( const char* unit, const char *filename, @@ -861,9 +904,6 @@ int config_parse_dhcp_request_options( } } -DEFINE_CONFIG_PARSE_ENUM(config_parse_dhcp_use_domains, dhcp_use_domains, DHCPUseDomains, - "Failed to parse DHCP use domains setting"); - static const char* const dhcp_use_domains_table[_DHCP_USE_DOMAINS_MAX] = { [DHCP_USE_DOMAINS_NO] = "no", [DHCP_USE_DOMAINS_ROUTE] = "route", |