From ce40c320409f9e8ebc846f0500a3f0bd9729bdd8 Mon Sep 17 00:00:00 2001 From: Sukru Senli Date: Mon, 20 Oct 2025 17:45:57 +0200 Subject: [PATCH] netmode: set default netmode --- ...e => 40_netmode_populated_supported_modes} | 0 .../40_netmode_set_default_netmode | 29 +++++++++++++++++++ 2 files changed, 29 insertions(+) rename netmode/files/etc/uci-defaults/{40_supported_mode => 40_netmode_populated_supported_modes} (100%) create mode 100644 netmode/files/etc/uci-defaults/40_netmode_set_default_netmode diff --git a/netmode/files/etc/uci-defaults/40_supported_mode b/netmode/files/etc/uci-defaults/40_netmode_populated_supported_modes similarity index 100% rename from netmode/files/etc/uci-defaults/40_supported_mode rename to netmode/files/etc/uci-defaults/40_netmode_populated_supported_modes diff --git a/netmode/files/etc/uci-defaults/40_netmode_set_default_netmode b/netmode/files/etc/uci-defaults/40_netmode_set_default_netmode new file mode 100644 index 000000000..8dc83e303 --- /dev/null +++ b/netmode/files/etc/uci-defaults/40_netmode_set_default_netmode @@ -0,0 +1,29 @@ +#!/bin/sh + +enabled="$(uci -q get netmode.global.enabled)" +[ "$enabled" == "1" ] || exit 0 + +mode="$(uci -q get netmode.global.mode)" +[ -n "$mode" ] && exit 0 + +[ -f /etc/netmodes/supported_modes.json ] || exit 0 + +# NetMode is enabled without a Mode being set +# Figure out the current mode from network config +wanproto=$(uci -q get network.wan.proto) +curmode="" +case "$wanproto" in + dhcp) curmode="routed-dhcp" ;; + pppoe) curmode="routed-pppoe" ;; + static) curmode="routed-static" ;; +esac + +found=0 +for md in $(jsonfilter -i /etc/netmodes/supported_modes.json -e "@.supported_modes.*.name"); do + [ "$md" == "$curmode" ] && found=1 +done + +if [ $found -eq 1 ]; then + uci -q set netmode.global.mode="$curmode" + echo "$curmode" > /etc/netmodes/.last_mode +fi