diff --git a/src/systemd_resolved_docker/cli.py b/src/systemd_resolved_docker/cli.py index b216dfdb34b3cdab02dda0236fce6c5b6ed48d0f..607661292fa9239a6614f30340f299ac607eea73 100644 --- a/src/systemd_resolved_docker/cli.py +++ b/src/systemd_resolved_docker/cli.py @@ -56,7 +56,7 @@ def main(): handler = Handler() handler.log("Default domain: %s, allowed domains: %s" % (default_domain, ", ".join(domains))) - resolved = SystemdResolvedConnector(interface, listen_addresses, domains) + resolved = SystemdResolvedConnector(interface, listen_addresses, listen_port, domains) dns_connector = DockerDNSConnector(listen_addresses, listen_port, dns_server, domains, default_domain, interface, handler, cli) diff --git a/src/systemd_resolved_docker/resolvedconnector.py b/src/systemd_resolved_docker/resolvedconnector.py index cc9560a703d5df0d40ccc7c4ccd84742586e8a49..d3eb11b23ae50ca7aeb8816c630d6f352544906a 100644 --- a/src/systemd_resolved_docker/resolvedconnector.py +++ b/src/systemd_resolved_docker/resolvedconnector.py @@ -7,11 +7,12 @@ from pyroute2 import IPRoute class SystemdResolvedConnector: - def __init__(self, docker_interface, listen_addresses, dns_domains): + def __init__(self, docker_interface, listen_addresses, listen_port, dns_domains): super().__init__() self.docker_interface = docker_interface self.listen_addresses = listen_addresses + self.listen_port = listen_port self.dns_domains = dns_domains self.ifindex = self.resolve_ifindex(docker_interface) @@ -36,15 +37,17 @@ class SystemdResolvedConnector: ips = [ [ AF_INET if isinstance(ip, ipaddress.IPv4Address) else AF_INET6, - ip.packed + ip.packed, + self.listen_port, + "", ] for ip in [ipaddress.ip_address(ip) for ip in self.listen_addresses] ] manager = self.if_manager() - manager.SetLinkDomains(self.ifindex, domains) - manager.SetLinkDNS(self.ifindex, ips) + manager.SetLinkDNSEx(self.ifindex, ips) manager.SetLinkDNSSEC(self.ifindex, "no") + manager.SetLinkDomains(self.ifindex, domains) def unregister(self): manager = self.if_manager()