Skip to content

Commit f9a507b

Browse files
authored
feat(firewall): added device for SNATs (#99)
1 parent 3ef1859 commit f9a507b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/nethsec/firewall/__init__.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1752,7 +1752,7 @@ def list_nat_rules(uci) -> list:
17521752
rules.append(rule)
17531753
return rules
17541754

1755-
def add_nat_rule(uci, name: str, target: str, src: str = '*', src_ip: str = '', dest_ip: str = '', snat_ip: str = '') -> str:
1755+
def add_nat_rule(uci, name: str, target: str, src: str = '*', src_ip: str = '', dest_ip: str = '', snat_ip: str = '', device: str = '') -> str:
17561756
"""
17571757
Add nat rule to firewall config.
17581758
@@ -1764,6 +1764,7 @@ def add_nat_rule(uci, name: str, target: str, src: str = '*', src_ip: str = '',
17641764
src_ip: source ip
17651765
dest_ip: destination ip
17661766
snat_ip: snat ip
1767+
device: add nat rule just for specific device
17671768
17681769
Returns:
17691770
name of rule config that was added
@@ -1781,10 +1782,11 @@ def add_nat_rule(uci, name: str, target: str, src: str = '*', src_ip: str = '',
17811782
uci.set('firewall', rule, 'dest_ip', dest_ip)
17821783
uci.set('firewall', rule, 'snat_ip', snat_ip)
17831784
uci.set('firewall', rule, 'proto', ["all"])
1785+
uci.set('firewall', rule, 'device', device)
17841786
uci.save('firewall')
17851787
return rule
17861788

1787-
def edit_nat_rule(uci, id: str, name: str, target: str, src: str = '*', src_ip: str = '', dest_ip: str = '', snat_ip: str = '') -> str:
1789+
def edit_nat_rule(uci, id: str, name: str, target: str, src: str = '*', src_ip: str = '', dest_ip: str = '', snat_ip: str = '', device: str = '') -> str:
17881790
"""
17891791
Edit nat rule in firewall config.
17901792
@@ -1797,6 +1799,8 @@ def edit_nat_rule(uci, id: str, name: str, target: str, src: str = '*', src_ip:
17971799
src_ip: source ip
17981800
dest_ip: destination ip
17991801
snat_ip: snat ip
1802+
src_device: source device
1803+
device: add nat rule just for specific device
18001804
18011805
Returns:
18021806
name of rule config that was edited
@@ -1813,6 +1817,7 @@ def edit_nat_rule(uci, id: str, name: str, target: str, src: str = '*', src_ip:
18131817
uci.set('firewall', id, 'src_ip', src_ip)
18141818
uci.set('firewall', id, 'dest_ip', dest_ip)
18151819
uci.set('firewall', id, 'snat_ip', snat_ip)
1820+
uci.set('firewall', id, 'device', device)
18161821
uci.save('firewall')
18171822
return id
18181823

0 commit comments

Comments
 (0)