From bb090135b2e05ce9174e02ba4b06793486c753c4 Mon Sep 17 00:00:00 2001 From: Sukru Senli Date: Mon, 20 Oct 2025 16:43:38 +0200 Subject: [PATCH] netmode: fix static mode and improve other modes --- .../routed-dhcp/scripts/10-routed-dhcp | 13 ++++----- .../routed-pppoe/scripts/10-routed-pppoe | 13 ++++----- .../routed-static/scripts/10-routed-static | 27 +++++++++---------- 3 files changed, 23 insertions(+), 30 deletions(-) diff --git a/netmode/files/etc/netmodes/routed-dhcp/scripts/10-routed-dhcp b/netmode/files/etc/netmodes/routed-dhcp/scripts/10-routed-dhcp index f7fc38de8..018034a37 100644 --- a/netmode/files/etc/netmodes/routed-dhcp/scripts/10-routed-dhcp +++ b/netmode/files/etc/netmodes/routed-dhcp/scripts/10-routed-dhcp @@ -46,16 +46,19 @@ l3_network_config() { uci -q set network.wan6.proto='dhcpv6' uci -q delete network.wan6.disabled - if [ -n "$wandev" -a -n "$NETMODE_vlanid" -a $NETMODE_vlanid -gt 0 ]; then + if [ -n "$wandev" ] && echo "$NETMODE_vlanid" | grep -Eq '^[0-9]+$' && [ "$NETMODE_vlanid" -ge 1 ]; then uci -q set network.vlan_${NETMODE_vlanid}=device uci -q set network.vlan_${NETMODE_vlanid}.type="8021q" uci -q set network.vlan_${NETMODE_vlanid}.name="$wandev.$NETMODE_vlanid" uci -q set network.vlan_${NETMODE_vlanid}.ifname="$wandev" uci -q set network.vlan_${NETMODE_vlanid}.vid=$NETMODE_vlanid - uci -q set network.wan.device="$wandev.$NETMODE_vlanid" + wandev="$wandev.$NETMODE_vlanid" fi + uci -q set network.wan.device="$wandev" + uci -q set network.wan6.device="$wandev" + uci -q delete network.wan.dns if [ -n "$NETMODE_dns_servers" ]; then dns_servers="$(echo $NETMODE_dns_servers | tr ',' ' ')" @@ -84,12 +87,6 @@ l3_network_config() { [ -n "$device" ] && uci add_list network.br_lan.ports="$device" fi json_select .. - json_select wan 2>/dev/null - json_get_var device device - if [ -n "$device" ]; then - uci -q set network.wan.device="$device" - uci -q set network.wan6.device="$device" - fi json_cleanup fi diff --git a/netmode/files/etc/netmodes/routed-pppoe/scripts/10-routed-pppoe b/netmode/files/etc/netmodes/routed-pppoe/scripts/10-routed-pppoe index d913830f1..38745eb65 100644 --- a/netmode/files/etc/netmodes/routed-pppoe/scripts/10-routed-pppoe +++ b/netmode/files/etc/netmodes/routed-pppoe/scripts/10-routed-pppoe @@ -44,16 +44,19 @@ l3_network_pppoe_config() { uci -q set network.wan6.disabled='1' - if [ -n "$wandev" -a -n "$NETMODE_vlanid" -a $NETMODE_vlanid -gt 0 ]; then + if [ -n "$wandev" ] && echo "$NETMODE_vlanid" | grep -Eq '^[0-9]+$' && [ "$NETMODE_vlanid" -ge 1 ]; then uci -q set network.vlan_${NETMODE_vlanid}=device uci -q set network.vlan_${NETMODE_vlanid}.type="8021q" uci -q set network.vlan_${NETMODE_vlanid}.name="$wandev.$NETMODE_vlanid" uci -q set network.vlan_${NETMODE_vlanid}.ifname="$wandev" uci -q set network.vlan_${NETMODE_vlanid}.vid=$NETMODE_vlanid - uci -q set network.wan.device="$wandev.$NETMODE_vlanid" + wandev="$wandev.$NETMODE_vlanid" fi + uci -q set network.wan.device="$wandev" + uci -q set network.wan6.device="$wandev" + uci -q delete network.wan.dns if [ -n "$NETMODE_dns_servers" ]; then dns_servers="$(echo $NETMODE_dns_servers | tr ',' ' ')" @@ -82,12 +85,6 @@ l3_network_pppoe_config() { [ -n "$device" ] && uci add_list network.br_lan.ports="$device" fi json_select .. - json_select wan 2>/dev/null - json_get_var device device - if [ -n "$device" ]; then - uci -q set network.wan.device="$device" - uci -q set network.wan6.device="$device" - fi json_cleanup fi diff --git a/netmode/files/etc/netmodes/routed-static/scripts/10-routed-static b/netmode/files/etc/netmodes/routed-static/scripts/10-routed-static index 40b0ef414..e8b49b2ef 100644 --- a/netmode/files/etc/netmodes/routed-static/scripts/10-routed-static +++ b/netmode/files/etc/netmodes/routed-static/scripts/10-routed-static @@ -45,6 +45,19 @@ l3_network_config() { uci -q set network.wan6.disabled='1' + if [ -n "$wandev" ] && echo "$NETMODE_vlanid" | grep -Eq '^[0-9]+$' && [ "$NETMODE_vlanid" -ge 1 ]; then + uci -q set network.vlan_${NETMODE_vlanid}=device + uci -q set network.vlan_${NETMODE_vlanid}.type="8021q" + uci -q set network.vlan_${NETMODE_vlanid}.name="$wandev.$NETMODE_vlanid" + uci -q set network.vlan_${NETMODE_vlanid}.ifname="$wandev" + uci -q set network.vlan_${NETMODE_vlanid}.vid=$NETMODE_vlanid + + wandev="$wandev.$NETMODE_vlanid" + fi + + uci -q set network.wan.device="$wandev" + uci -q set network.wan6.device="$wandev" + uci -q delete network.wan.dns if [ -n "$NETMODE_dns_servers" ]; then dns_servers="$(echo $NETMODE_dns_servers | tr ',' ' ')" @@ -53,14 +66,6 @@ l3_network_config() { done fi - uci -q delete network.wan.dns - if [ -n "$NETMODE_dns_servers" ]; then - IFS=',' read -ra ADDRS <<< "$NETMODE_dns_servers" - for ip in "${ADDRS[@]}"; do - uci -q add_list network.wan.dns=$ip - done - fi - uci -q delete network.br_lan.ports uci -q set network.br_lan.bridge_empty='1' @@ -81,12 +86,6 @@ l3_network_config() { [ -n "$device" ] && uci add_list network.br_lan.ports="$device" fi json_select .. - json_select wan 2>/dev/null - json_get_var device device - if [ -n "$device" ]; then - uci -q set network.wan.device="$device" - uci -q set network.wan6.device="$device" - fi json_cleanup fi