Development
This commit is contained in:
parent
a4652866c3
commit
27eaea3d73
19 changed files with 602 additions and 427 deletions
|
|
@ -283,7 +283,7 @@ def derive_vlan_id(subnet, prefix):
|
|||
|
||||
def derive_interface(vlan, data):
|
||||
"""Derive the interface name for a VLAN without mutating data."""
|
||||
lan = data.get('general', {}).get('lan_interface', 'eth0')
|
||||
lan = data.get('network_interfaces', {}).get('lan_interface', 'eth0')
|
||||
if is_wg(vlan):
|
||||
wg_vlans = [v for v in data.get('vlans', []) if is_wg(v)]
|
||||
wg_sorted = sorted(
|
||||
|
|
@ -312,7 +312,7 @@ def validate_config(data):
|
|||
seen_listen_ports = {}
|
||||
|
||||
# Pre-compute per-VLAN vlan_ids and interface names without mutating data
|
||||
_lan = data.get("general", {}).get("lan_interface", "eth0")
|
||||
_lan = data.get("network_interfaces", {}).get("lan_interface", "eth0")
|
||||
_all_vlans = data.get("vlans", [])
|
||||
_derived_ids = [
|
||||
derive_vlan_id(_v.get("subnet", ""), _v.get("subnet_mask", 24))
|
||||
|
|
@ -336,13 +336,13 @@ def validate_config(data):
|
|||
errors.append("upstream_dns.upstream_servers is missing or empty.")
|
||||
|
||||
# -- WAN / LAN interfaces --------------------------------------------------
|
||||
gen = data.get("general", {})
|
||||
gen = data.get("network_interfaces", {})
|
||||
wan = gen.get("wan_interface", "")
|
||||
lan = gen.get("lan_interface", "")
|
||||
if not wan:
|
||||
errors.append("general.wan_interface is missing or empty.")
|
||||
errors.append("network_interfaces.wan_interface is missing or empty.")
|
||||
if not lan:
|
||||
errors.append("general.lan_interface is missing or empty.")
|
||||
errors.append("network_interfaces.lan_interface is missing or empty.")
|
||||
if wan and lan:
|
||||
available_interfaces = set()
|
||||
try:
|
||||
|
|
@ -351,17 +351,17 @@ def validate_config(data):
|
|||
pass
|
||||
if available_interfaces:
|
||||
if wan not in available_interfaces:
|
||||
errors.append(f"general.wan_interface: '{wan}' does not exist on this system.")
|
||||
errors.append(f"network_interfaces.wan_interface: '{wan}' does not exist on this system.")
|
||||
if lan not in available_interfaces:
|
||||
errors.append(f"general.lan_interface: '{lan}' does not exist on this system.")
|
||||
errors.append(f"network_interfaces.lan_interface: '{lan}' does not exist on this system.")
|
||||
if wan == lan:
|
||||
errors.append(f"general.wan_interface and general.lan_interface must be different (both set to '{wan}').")
|
||||
errors.append(f"network_interfaces.wan_interface and network_interfaces.lan_interface must be different (both set to '{wan}').")
|
||||
|
||||
# -- Blocklist library -----------------------------------------------------
|
||||
blocklists_by_name = {}
|
||||
for idx, bl in enumerate(data.get("blocklists", [])):
|
||||
for idx, bl in enumerate(data.get("dns_blocking", {}).get("blocklists", [])):
|
||||
name = bl.get("name", "")
|
||||
label = f"blocklists[{idx}] '{name}'"
|
||||
label = f"dns_blocking.blocklists[{idx}] '{name}'"
|
||||
for field in ("name", "description", "save_as", "url", "format"):
|
||||
if not bl.get(field):
|
||||
errors.append(f"{label}: missing or empty field '{field}'.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue