Fix: support dns_search and dns_options for all address family

`dns_search` and `dns_options` should not be specific to the address
family. Previously, `dns_search` and `dns_options` were only supported
for IPv4 nameservers, so we also need to support `dns_search` and
`dns_options` for IPv6 nameservers.

Signed-off-by: Wen Liang <liangwen12year@gmail.com>
This commit is contained in:
Wen Liang 2021-03-28 17:36:45 -04:00 committed by Gris Ge
parent 2444e27cce
commit 93e509b533
5 changed files with 165 additions and 17 deletions

View file

@ -1023,14 +1023,14 @@ class NMUtil:
s_ip4.set_property(
NM.SETTING_IP_CONFIG_ROUTE_METRIC, ip["route_metric4"]
)
for d in ip["dns"]:
if d["family"] == socket.AF_INET:
s_ip4.add_dns(d["address"])
for s in ip["dns_search"]:
s_ip4.add_dns_search(s)
for nameserver in ip["dns"]:
if nameserver["family"] == socket.AF_INET:
s_ip4.add_dns(nameserver["address"])
for search_domain in ip["dns_search"]:
s_ip4.add_dns_search(search_domain)
s_ip4.clear_dns_options(True)
for s in ip["dns_options"]:
s_ip4.add_dns_option(s)
for option in ip["dns_options"]:
s_ip4.add_dns_option(option)
if ip["ipv6_disabled"]:
s_ip6.set_property(NM.SETTING_IP_CONFIG_METHOD, "disabled")
@ -1056,9 +1056,14 @@ class NMUtil:
s_ip6.set_property(
NM.SETTING_IP_CONFIG_ROUTE_METRIC, ip["route_metric6"]
)
for d in ip["dns"]:
if d["family"] == socket.AF_INET6:
s_ip6.add_dns(d["address"])
for nameserver in ip["dns"]:
if nameserver["family"] == socket.AF_INET6:
s_ip6.add_dns(nameserver["address"])
for search_domain in ip["dns_search"]:
s_ip6.add_dns_search(search_domain)
s_ip6.clear_dns_options(True)
for option in ip["dns_options"]:
s_ip6.add_dns_option(option)
if ip["route_append_only"] and connection_current:
for r in self.setting_ip_config_get_routes(