netmode: save wet config when entering repeater mode #16601

This commit is contained in:
Jakob Olsson 2019-01-09 14:43:47 +01:00
parent b1bd71033e
commit 253865d22f
3 changed files with 78 additions and 0 deletions

View file

@ -0,0 +1,37 @@
#if wet in wireless config and SSID nad KEY was saved for it, apply to config
#!/bin/sh
. /usr/share/libubox/jshn.sh
. /lib/functions.sh
parse_wet_json()
{
local interface=$1
local mode key encryption ssid connect_bssid
config_get mode $interface mode
[ "$mode" = "wet" ] || return
json_load "$(cat /tmp/netmodecfg)" 2> /dev/null
json_get_var ssid ssid
json_get_var key key
json_get_var encryption encryption
json_get_var connect_bssid connect_bssid
uci -q set wireless.$1.key="$key"
uci -q set wireless.$1.encryption="$encryption"
uci -q set wireless.$1.ssid="$ssid"
uci -q set wireless.$1.connect_bssid="$connect_bssid"
uci commit wireless
}
apply_wet_cfg()
{
[ -f /tmp/netmodecfg ] || return
config_load wireless
config_foreach parse_wet_json "wifi-iface"
rm /tmp/netmodecfg 2> /dev/null
}

View file

@ -0,0 +1,37 @@
#if mode wet in wireless config has SSID Key, save them
#!/bin/sh
. /usr/share/libubox/jshn.sh
. /lib/functions.sh
parse_wet_cfg()
{
local interface=$1
local mode key encryption ssid connect_bssid
config_get mode $interface mode
[ "$mode" = "wet" ] || return
config_get ssid $interface ssid
config_get key $interface key
config_get encryption $interface encryption
config_get connect_bssid $interface connect_bssid
[ -n "$key" ] || return
[ -n "$encryption" ] || return
json_init
json_add_string "ssid" "$ssid"
json_add_string "key" "$key"
json_add_string "encryption" "$encryption"
json_add_string "connect_bssid" "$connect_bssid"
echo "`json_dump`" > /tmp/netmodecfg
}
save_wet_cfg()
{
config_load wireless
config_foreach parse_wet_cfg "wifi-iface"
}

View file

@ -1,5 +1,7 @@
#!/bin/sh #!/bin/sh
. /etc/netmodes/repeater_mtk_5g_up_dual_down/scripts/pre/save_wet_cfg.sh
. /etc/netmodes/repeater_mtk_5g_up_dual_down/scripts/post/apply_wet_cfg.sh
. /lib/functions.sh . /lib/functions.sh
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
@ -180,6 +182,7 @@ switch_netmode() {
run_netmode_scripts $curmode "pre" run_netmode_scripts $curmode "pre"
logger -s -p user.info -t $0 "[netmode] Copying /etc/netmodes/$curmode in /etc/config" >/dev/console logger -s -p user.info -t $0 "[netmode] Copying /etc/netmodes/$curmode in /etc/config" >/dev/console
save_wet_cfg
for file in $(ls /etc/netmodes/$curmode/); do for file in $(ls /etc/netmodes/$curmode/); do
case "$file" in case "$file" in
DETAILS|scripts) continue ;; DETAILS|scripts) continue ;;
@ -187,6 +190,7 @@ switch_netmode() {
cp /etc/netmodes/$curmode/$file /etc/config/ cp /etc/netmodes/$curmode/$file /etc/config/
done done
sync sync
apply_wet_cfg
local reboot=$(uci -q get netmode.$curmode.reboot) local reboot=$(uci -q get netmode.$curmode.reboot)