From d449ee45867643938d314eae20257715501651da Mon Sep 17 00:00:00 2001 From: zero88 Date: Wed, 16 Jun 2021 19:59:16 +0700 Subject: [PATCH] Fix #99 --- cli/python/src/client/device_resolver.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/cli/python/src/client/device_resolver.py b/cli/python/src/client/device_resolver.py index 040fcd6..b3c10b3 100644 --- a/cli/python/src/client/device_resolver.py +++ b/cli/python/src/client/device_resolver.py @@ -206,9 +206,9 @@ def tweak_per_nic(self, nic: str): """ Tweak DNS/DHCP flavour config per NIC :param nic: - :return: + :return: should restart service """ - pass + return False def update_hook(self, reason: DHCPReason, priv_root_dns: str, nameservers: list, vpn_nameserver_hook_conf: Path): """ @@ -313,8 +313,7 @@ def tweak_per_nic(self, nic: str): print(line.strip() + "," + nic) else: print(line, end='') - if restart: - self.restart() + return restart def adapt_dnsmasq(self, origin_resolv_conf: Path, vpn_service: str) -> Optional[Path]: return FileHelper.get_target_link(origin_resolv_conf) or self.config.runtime_resolv if \ @@ -374,7 +373,6 @@ def setup(self, vpn_service: str, origin_resolv_conf: Path, vpn_resolv_conf: Pat FileHelper.write_file(vpn_resolv_conf, self.__dnsmasq_resolv(vpn_service), mode=0o0644) FileHelper.create_symlink(vpn_resolv_conf, DNSResolver.DNS_SYSTEM_FILE, force=True) self.service.enable(self.config.identity) - self.restart(_all=True) def adapt_dnsmasq(self, origin_resolv_conf: Path, vpn_service: str) -> Optional[Path]: return self._resolver.adapt_dnsmasq(origin_resolv_conf, vpn_service) if self._resolver else None @@ -384,8 +382,7 @@ def dnsmasq_options(self): return {'cache_size': 1500, 'port': 53} if options is None else options def tweak_per_nic(self, nic: str): - if self._resolver: - self._resolver.tweak_per_nic(nic) + return self._resolver.tweak_per_nic(nic) if self._resolver else False def update_hook(self, reason: DHCPReason, priv_root_dns: str, nameservers: list, vpn_nameserver_hook_conf: Path): logger.info(f'Update VPN DNS config file on [{reason.name}][{priv_root_dns}] with nameservers {nameservers}...') @@ -567,6 +564,7 @@ def create_config(self, vpn_service: str, auto_connman_dhcp: bool): if not FileHelper.is_readable(self.vpn_hook_cfg): FileHelper.touch(self.vpn_hook_cfg, 0o0644) self._resolver().setup(vpn_service, self.origin_resolv_cfg, self.vpn_resolv_cfg, self.vpn_hook_cfg) + self._resolver().restart(_all=True) def cleanup_config(self, vpn_service: str, keep_dnsmasq=True): if self.is_connman(): @@ -582,11 +580,11 @@ def cleanup_config(self, vpn_service: str, keep_dnsmasq=True): resolver.restart(_all=not keep_dnsmasq, keep_dnsmasq=keep_dnsmasq) def tweak_on_nic(self, nic: str): - self._resolver().tweak_per_nic(nic) + if self._resolver().tweak_per_nic(nic): + self._resolver().restart(_all=True) def resolve(self, vpn_service: str, reason: DHCPReason, priv_root_dns: str, new_nameservers: str = None, old_nameservers: str = None): - resolver = self._resolver() if reason.is_release(): self.cleanup_config(vpn_service=vpn_service) return @@ -594,7 +592,8 @@ def resolve(self, vpn_service: str, reason: DHCPReason, priv_root_dns: str, new_ if nss is None: logger.info(f'Skip generating DNS entry in [{reason.name}][{new_nameservers}][{old_nameservers}]') return - resolver.update_hook(reason, priv_root_dns, nss, self.vpn_hook_cfg) + self._resolver().update_hook(reason, priv_root_dns, nss, self.vpn_hook_cfg) + self.restart() def restart(self): self._resolver().restart(_all=self.is_connman(), keep_dnsmasq=True)