Development
This commit is contained in:
parent
9c22b6f2fd
commit
6e610f888e
10 changed files with 526 additions and 102 deletions
|
|
@ -1370,7 +1370,10 @@ def build_nft_config(data, dry_run=False):
|
|||
vlans = [v for v in data["vlans"]
|
||||
if not is_wg(v) or dry_run or wg_interface_up(derive_interface(v, data))]
|
||||
all_fwd = list(rule_enabled(data.get("port_forwarding", [])))
|
||||
all_wrngl = [(v, r) for v in vlans for r in rule_enabled(v.get("port_wrangling", []))]
|
||||
_wrngl_vlan_by_name = {v["name"]: v for v in vlans}
|
||||
all_wrngl = [(_wrngl_vlan_by_name[r["vlan"]], r)
|
||||
for r in rule_enabled(data.get("port_wrangling", []))
|
||||
if r.get("vlan") in _wrngl_vlan_by_name]
|
||||
# Interfaces that are active (WG interfaces only included if up)
|
||||
active_ifaces = {derive_interface(v, data) for v in vlans}
|
||||
|
||||
|
|
@ -1675,8 +1678,11 @@ def apply_nftables(data, dry_run=False):
|
|||
|
||||
all_fwd = list(rule_enabled(data.get("port_forwarding", [])))
|
||||
all_dis_fwd = list(rule_disabled(data.get("port_forwarding", [])))
|
||||
all_wrngl = [(v, r) for v in active_vlans for r in rule_enabled(v.get("port_wrangling", []))]
|
||||
all_dis_wrngl = [(v, r) for v in data["vlans"] for r in rule_disabled(v.get("port_wrangling", []))]
|
||||
_active_vlan_by_name = {v["name"]: v for v in active_vlans}
|
||||
all_wrngl = [(_active_vlan_by_name[r["vlan"]], r)
|
||||
for r in rule_enabled(data.get("port_wrangling", []))
|
||||
if r.get("vlan") in _active_vlan_by_name]
|
||||
all_dis_wrngl = rule_disabled(data.get("port_wrangling", []))
|
||||
all_except = rule_enabled(data.get("inter_vlan_exceptions", []))
|
||||
|
||||
print(f"Applying {len(all_fwd)} port forwarding rule(s), {len(all_dis_fwd)} skipped.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue