summaryrefslogtreecommitdiff
path: root/src/conf_mode/nat66.py
diff options
context:
space:
mode:
authorjack9603301 <jack9603301@163.com>2021-01-22 13:16:55 +0800
committerjack9603301 <jack9603301@163.com>2021-01-23 21:45:31 +0800
commitd05593e68ff0978c278b13a42f246edcfad3902d (patch)
tree6f3cb7f58fb796c369f80d7d1bf023001617b5ab /src/conf_mode/nat66.py
parent88a6a034b1cb6a1a43c689281df92831d82c996c (diff)
downloadvyos-1x-d05593e68ff0978c278b13a42f246edcfad3902d.tar.gz
vyos-1x-d05593e68ff0978c278b13a42f246edcfad3902d.zip
nptv6: T2518: Optimized implementation
Diffstat (limited to 'src/conf_mode/nat66.py')
-rwxr-xr-xsrc/conf_mode/nat66.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/conf_mode/nat66.py b/src/conf_mode/nat66.py
index a5c74259f..7190961e8 100755
--- a/src/conf_mode/nat66.py
+++ b/src/conf_mode/nat66.py
@@ -151,10 +151,16 @@ def generate(nat):
return None
def apply(nat):
- cmd(f'{iptables_nat_config}')
- cmd('systemctl restart ndppd')
- if os.path.isfile(iptables_nat_config):
- os.unlink(iptables_nat_config)
+ if not nat:
+ return None
+ else:
+ cmd(f'{iptables_nat_config}')
+ if 'deleted' in nat or not dict_search('source.rule', nat):
+ cmd('systemctl stop ndppd')
+ else:
+ cmd('systemctl restart ndppd')
+ if os.path.isfile(iptables_nat_config):
+ os.unlink(iptables_nat_config)
return None