summaryrefslogtreecommitdiff
path: root/src/op_mode/show_nat_rules.py
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2021-03-17 21:00:04 +0100
committerGitHub <noreply@github.com>2021-03-17 21:00:04 +0100
commitd6b28f0b5a83c6727a159b8ee15f810abe6e1636 (patch)
tree367a261a45f6e661630286d4cef5f94473c8585b /src/op_mode/show_nat_rules.py
parent5adcc4ca30676338fca9a06409bbc72af4f68a1f (diff)
parent5995f83eded2169cb710070c89f067ac6e28f6af (diff)
downloadvyos-1x-d6b28f0b5a83c6727a159b8ee15f810abe6e1636.tar.gz
vyos-1x-d6b28f0b5a83c6727a159b8ee15f810abe6e1636.zip
Merge pull request #776 from jack9603301/T2518
nat66: T2518: Correct the wrong logic
Diffstat (limited to 'src/op_mode/show_nat_rules.py')
-rwxr-xr-xsrc/op_mode/show_nat_rules.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/op_mode/show_nat_rules.py b/src/op_mode/show_nat_rules.py
index 0ddb7ddd4..a98fbef8c 100755
--- a/src/op_mode/show_nat_rules.py
+++ b/src/op_mode/show_nat_rules.py
@@ -33,17 +33,18 @@ if args.source or args.destination:
tmp = cmd('sudo nft -j list table ip nat')
tmp = json.loads(tmp)
- format_nat66_rule = '%-10s %-50s %-50s %-10s'
- print(format_nat66_rule % ("Rule", "Source" if args.source else "Destination", "Translation", "Outbound Interface" if args.source else "Inbound Interface"))
- print(format_nat66_rule % ("----", "------" if args.source else "-----------", "-----------", "------------------" if args.source else "-----------------"))
+ format_nat66_rule = '{0: <10} {1: <50} {2: <50} {3: <10}'
+ print(format_nat66_rule.format("Rule", "Source" if args.source else "Destination", "Translation", "Outbound Interface" if args.source else "Inbound Interface"))
+ print(format_nat66_rule.format("----", "------" if args.source else "-----------", "-----------", "------------------" if args.source else "-----------------"))
data_json = jmespath.search('nftables[?rule].rule[?chain]', tmp)
for idx in range(0, len(data_json)):
data = data_json[idx]
comment = data['comment']
+ rule = int(''.join(list(filter(str.isdigit, comment))))
chain = data['chain']
if not (args.source and chain == 'POSTROUTING') or (not args.source and chain == 'PREROUTING'):
- exit(0)
+ continue
interface = dict_search('match.right', data['expr'][0])
srcdest = dict_search('match.right.prefix.addr', data['expr'][1])
if srcdest:
@@ -65,7 +66,7 @@ if args.source or args.destination:
else:
tran_addr = dict_search('snat.addr' if args.source else 'dnat.addr', data['expr'][3])
- print(format_nat66_rule % (comment, srcdest, tran_addr, interface))
+ print(format_nat66_rule.format(rule, srcdest, tran_addr, interface))
exit(0)
else: