Development
This commit is contained in:
parent
84118a4c2b
commit
916d238602
9 changed files with 51 additions and 51 deletions
|
|
@ -112,9 +112,9 @@ def addvlan_add():
|
|||
inferred_gw = (min(identity_ips, key=lambda ip: int(ip.split('.')[-1])) if identity_ips else '')
|
||||
new_stored_gw = gateway_raw if (gateway_raw and gateway_raw != inferred_gw) else ''
|
||||
|
||||
dns_override = 'dns_server_override' in request.form
|
||||
dns_override = 'dns_servers_override' in request.form
|
||||
dns_ips = []
|
||||
for _line in request.form.get('dns_server', '').splitlines():
|
||||
for _line in request.form.get('dns_servers', '').splitlines():
|
||||
_line = _line.strip()
|
||||
if not _line:
|
||||
continue
|
||||
|
|
@ -130,9 +130,9 @@ def addvlan_add():
|
|||
return redirect(f'/{_PAGE}')
|
||||
new_stored_dns = dns_ips if dns_override else []
|
||||
|
||||
ntp_override = 'ntp_server_override' in request.form
|
||||
ntp_override = 'ntp_servers_override' in request.form
|
||||
ntp_ips = []
|
||||
for _line in request.form.get('ntp_server', '').splitlines():
|
||||
for _line in request.form.get('ntp_servers', '').splitlines():
|
||||
_line = _line.strip()
|
||||
if not _line:
|
||||
continue
|
||||
|
|
@ -207,9 +207,9 @@ def addvlan_add():
|
|||
if new_stored_gw:
|
||||
dhcp_overrides['gateway'] = new_stored_gw
|
||||
if new_stored_dns:
|
||||
dhcp_overrides['dns_server'] = new_stored_dns
|
||||
dhcp_overrides['dns_servers'] = new_stored_dns
|
||||
if new_stored_ntp:
|
||||
dhcp_overrides['ntp_server'] = new_stored_ntp
|
||||
dhcp_overrides['ntp_servers'] = new_stored_ntp
|
||||
if dhcp_overrides:
|
||||
dhcp_info['explicit_overrides'] = dhcp_overrides
|
||||
|
||||
|
|
@ -361,9 +361,9 @@ def vlans_edit():
|
|||
new_stored_gw = gateway_raw if (gateway_raw and gateway_raw != inferred_gw) else ''
|
||||
existing_gw = existing.get('dhcp_information', {}).get('explicit_overrides', {}).get('gateway', '')
|
||||
|
||||
dns_override = 'dns_server_override' in request.form
|
||||
dns_override = 'dns_servers_override' in request.form
|
||||
dns_ips = []
|
||||
for _line in request.form.get('dns_server', '').splitlines():
|
||||
for _line in request.form.get('dns_servers', '').splitlines():
|
||||
_line = _line.strip()
|
||||
if not _line:
|
||||
continue
|
||||
|
|
@ -382,12 +382,12 @@ def vlans_edit():
|
|||
flash(f"DNS server '{_ip}' is not in the VLAN subnet ({subnet}/{final_mask}).", 'error')
|
||||
return redirect(f'/{_PAGE}')
|
||||
new_stored_dns = dns_ips if dns_override else []
|
||||
_existing_dns = existing.get('dhcp_information', {}).get('explicit_overrides', {}).get('dns_server', [])
|
||||
_existing_dns = existing.get('dhcp_information', {}).get('explicit_overrides', {}).get('dns_servers', [])
|
||||
existing_dns = _existing_dns if isinstance(_existing_dns, list) else ([_existing_dns] if _existing_dns else [])
|
||||
|
||||
ntp_override = 'ntp_server_override' in request.form
|
||||
ntp_ips = []
|
||||
for _line in request.form.get('ntp_server', '').splitlines():
|
||||
for _line in request.form.get('ntp_servers', '').splitlines():
|
||||
_line = _line.strip()
|
||||
if not _line:
|
||||
continue
|
||||
|
|
@ -406,7 +406,7 @@ def vlans_edit():
|
|||
flash(f"NTP server '{_ip}' is not in the VLAN subnet ({subnet}/{final_mask}).", 'error')
|
||||
return redirect(f'/{_PAGE}')
|
||||
new_stored_ntp = ntp_ips if ntp_override else []
|
||||
_existing_ntp = existing.get('dhcp_information', {}).get('explicit_overrides', {}).get('ntp_server', [])
|
||||
_existing_ntp = existing.get('dhcp_information', {}).get('explicit_overrides', {}).get('ntp_servers', [])
|
||||
existing_ntp = _existing_ntp if isinstance(_existing_ntp, list) else ([_existing_ntp] if _existing_ntp else [])
|
||||
|
||||
_ids_unchanged = (
|
||||
|
|
@ -452,13 +452,13 @@ def vlans_edit():
|
|||
else:
|
||||
dhcp_overrides.pop('gateway', None)
|
||||
if new_stored_dns:
|
||||
dhcp_overrides['dns_server'] = new_stored_dns
|
||||
dhcp_overrides['dns_servers'] = new_stored_dns
|
||||
else:
|
||||
dhcp_overrides.pop('dns_server', None)
|
||||
dhcp_overrides.pop('dns_servers', None)
|
||||
if new_stored_ntp:
|
||||
dhcp_overrides['ntp_server'] = new_stored_ntp
|
||||
dhcp_overrides['ntp_servers'] = new_stored_ntp
|
||||
else:
|
||||
dhcp_overrides.pop('ntp_server', None)
|
||||
dhcp_overrides.pop('ntp_servers', None)
|
||||
if not dhcp_overrides:
|
||||
existing.get('dhcp_information', {}).pop('explicit_overrides', None)
|
||||
errors = validate.validate_config(cfg)
|
||||
|
|
|
|||
|
|
@ -221,16 +221,16 @@
|
|||
{
|
||||
"type": "overridable_textarea",
|
||||
"label": "DNS Server(s)",
|
||||
"name": "dns_server",
|
||||
"override_name": "dns_server_override",
|
||||
"name": "dns_servers",
|
||||
"override_name": "dns_servers_override",
|
||||
"validate": "VALIDATION_ADDRESS",
|
||||
"hint": "DNS server(s) advertised to clients via DHCP."
|
||||
},
|
||||
{
|
||||
"type": "overridable_textarea",
|
||||
"label": "NTP Server(s)",
|
||||
"name": "ntp_server",
|
||||
"override_name": "ntp_server_override",
|
||||
"name": "ntp_servers",
|
||||
"override_name": "ntp_servers_override",
|
||||
"validate": "VALIDATION_ADDRESS",
|
||||
"hint": "NTP server(s) advertised to clients via DHCP."
|
||||
},
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ def _build_client_conf(vlan, peer_name, peer_ip, private_key, server_pubkey):
|
|||
default = str(min((ipaddress.IPv4Address(ip) for ip in ident_ips),
|
||||
key=lambda x: x.packed[-1])) if ident_ips else str(next(network.hosts()))
|
||||
gateway = overrides.get('gateway') or default
|
||||
dns = overrides.get('dns_server') or gateway
|
||||
dns = overrides.get('dns_servers') or gateway
|
||||
prefix = network.prefixlen
|
||||
mtu = overrides.get('mtu', '')
|
||||
endpoint = info.get('server_endpoint', '')
|
||||
|
|
@ -138,7 +138,7 @@ def wireguard_apply():
|
|||
listen_port_raw = request.form.get('vpn_listen_port', '').strip()
|
||||
server_endpoint = validate.domainname(request.form.get('vpn_server_endpoint', ''))
|
||||
domain = validate.domainname(request.form.get('vpn_domain', ''))
|
||||
dns_raw = request.form.get('vpn_dns_server', '').strip()
|
||||
dns_raw = request.form.get('vpn_dns_servers', '').strip()
|
||||
mtu_raw = request.form.get('vpn_mtu', '').strip()
|
||||
|
||||
if not listen_port_raw:
|
||||
|
|
@ -185,9 +185,9 @@ def wireguard_apply():
|
|||
|
||||
overrides = info.setdefault('explicit_overrides', {})
|
||||
if dns_server:
|
||||
overrides['dns_server'] = dns_server
|
||||
overrides['dns_servers'] = dns_server
|
||||
else:
|
||||
overrides.pop('dns_server', None)
|
||||
overrides.pop('dns_servers', None)
|
||||
if mtu is not None:
|
||||
overrides['mtu'] = mtu
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -302,10 +302,10 @@ def config_datasource(name):
|
|||
row['server_identity_gateway'] = (
|
||||
v.get('dhcp_information', {}).get('explicit_overrides', {}).get('gateway', '')
|
||||
)
|
||||
_dns = v.get('dhcp_information', {}).get('explicit_overrides', {}).get('dns_server', [])
|
||||
row['server_identity_dns_server'] = '\n'.join(_dns) if isinstance(_dns, list) else str(_dns or '')
|
||||
_ntp = v.get('dhcp_information', {}).get('explicit_overrides', {}).get('ntp_server', [])
|
||||
row['server_identity_ntp_server'] = '\n'.join(_ntp) if isinstance(_ntp, list) else str(_ntp or '')
|
||||
_dns = v.get('dhcp_information', {}).get('explicit_overrides', {}).get('dns_servers', [])
|
||||
row['server_identity_dns_servers'] = '\n'.join(_dns) if isinstance(_dns, list) else str(_dns or '')
|
||||
_ntp = v.get('dhcp_information', {}).get('explicit_overrides', {}).get('ntp_servers', [])
|
||||
row['server_identity_ntp_servers'] = '\n'.join(_ntp) if isinstance(_ntp, list) else str(_ntp or '')
|
||||
rows.append(row)
|
||||
return rows
|
||||
|
||||
|
|
@ -819,7 +819,7 @@ def collect_tokens():
|
|||
tokens['VPN_LISTEN_PORT'] = str(vpn.get('listen_port', ''))
|
||||
tokens['VPN_SERVER_ENDPOINT'] = str(vpn.get('server_endpoint', ''))
|
||||
tokens['VPN_DOMAIN'] = str(vpn.get('domain', ''))
|
||||
tokens['VPN_DNS_SERVER'] = str(overrides.get('dns_server', ''))
|
||||
tokens['VPN_DNS_SERVER'] = str(overrides.get('dns_servers', ''))
|
||||
tokens['VPN_MTU'] = str(overrides.get('mtu', ''))
|
||||
|
||||
# Compute gateway from server_identities (lowest last-octet), fallback to first subnet host
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue