Skip to content

Commit

Permalink
Fix #99
Browse files Browse the repository at this point in the history
  • Loading branch information
zero88 committed Jun 16, 2021
1 parent 3d60b7e commit d449ee4
Showing 1 changed file with 9 additions and 10 deletions.
19 changes: 9 additions & 10 deletions cli/python/src/client/device_resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
"""
Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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
Expand All @@ -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}...')
Expand Down Expand Up @@ -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():
Expand All @@ -582,19 +580,20 @@ 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
nss = self.__validate_nameservers(reason, new_nameservers, old_nameservers)
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)
Expand Down

0 comments on commit d449ee4

Please sign in to comment.