From 68d34bf1ecbc2cbf8ae56761ac7d8248ccc9d0cb Mon Sep 17 00:00:00 2001 From: Suvendhu Hansa Date: Fri, 16 Jan 2026 12:23:53 +0530 Subject: [PATCH] netmode: set gateway by routing instance --- .../routed-static/scripts/10-routed-static | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) 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 4a33877a0..b46fcb918 100644 --- a/netmode/files/etc/netmodes/routed-static/scripts/10-routed-static +++ b/netmode/files/etc/netmodes/routed-static/scripts/10-routed-static @@ -42,12 +42,42 @@ l3_network_config() { uci -q set network.wan.device="$wandev" uci -q set network.wan.proto='static' uci -q set network.wan.ipaddr="$NETMODE_ipaddr" - uci -q set network.wan.gateway="$NETMODE_gateway" uci -q set network.wan.netmask="$NETMODE_netmask" uci -q delete network.wan.disabled uci -q delete network.wan.username uci -q delete network.wan.password + # configure default gateway for wan + if [ -n "${NETMODE_gateway}" ]; then + routes=$(uci show network | grep '=route' | cut -d'=' -f 1 | cut -d'.' -f2) + for route in ${routes}; do + gw=$(uci -q get network."${route}".gateway) + if [ -z "${gw}" ]; then + continue + fi + + target=$(uci -q get network."${route}".target) + mask=$(uci -q get network."${route}".netmask) + intf=$(uci -q get network."${route}".interface) + + if [ "${intf}" != "wan" ]; then + continue; + fi + + if ( [ -z "${target}" ] || [ "${target}" = "0.0.0.0" ] ) && ( [ -z "${target}" ] || [ "${target}" = "0.0.0.0" ] ); then + uci -q delete network."${route}" + fi + done + + uci -q set network.default_route=route + uci -q set network.default_route.disabled='0' + uci -q set network.default_route.table='254' + uci -q set network.default_route.gateway="$NETMODE_gateway" + uci -q set network.default_route.interface='wan' + uci -q set network.default_route.target='0.0.0.0' + uci -q set network.default_route.netmask='0.0.0.0' + fi + uci -q delete network.wan6 # Delete all VLAN sections; new ones will be created in next function if required