From 63234790db79e24e8a8b463e33dff9fe9ddaf203 Mon Sep 17 00:00:00 2001 From: ben Date: Fri, 29 Sep 2023 09:20:33 +0000 Subject: [PATCH] Update 'root/etc/init.d/easymesh' --- root/etc/init.d/easymesh | 87 ++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 35 deletions(-) diff --git a/root/etc/init.d/easymesh b/root/etc/init.d/easymesh index ad56ae8..7bd7439 100755 --- a/root/etc/init.d/easymesh +++ b/root/etc/init.d/easymesh @@ -82,61 +82,78 @@ add_wifi_mesh() { fi - if [ "$encryption" != 1 ]; then +if [ "$encryption" != 1 ]; then apnum="${mesh_apRadio#radio}" apnum=$((apnum + 1)) + found=0 - # Check all existing wifinetX and remove if SSID matches with $mesh_id + # Check all existing wifinetX and remove if SSID matches with $mesh_id and mode is 'ap' while uci get wireless.wifinet$apnum > /dev/null 2>&1; do existing_ssid=$(uci get wireless.wifinet$apnum.ssid 2> /dev/null) - if [ "$existing_ssid" = "$mesh_id" ]; then - uci delete wireless.wifinet$apnum + existing_mode=$(uci get wireless.wifinet$apnum.mode 2> /dev/null) + if [ "$existing_ssid" = "$mesh_id" ] && [ "$existing_mode" = "ap" ]; then + if [ $found -eq 0 ]; then + found=1 + else + uci delete wireless.wifinet$apnum + fi fi apnum=$((apnum + 1)) done uci commit wireless - uci set wireless.mesh_$apall.encryption='none' - uci set wireless.wifinet$apnum=wifi-iface - uci set wireless.wifinet$apnum.device=$mesh_apRadio - uci set wireless.wifinet$apnum.mode='ap' - uci set wireless.wifinet$apnum.ssid=$mesh_id - uci set wireless.wifinet$apnum.encryption='none' - uci set wireless.wifinet$apnum.key=$key - uci set wireless.wifinet$apnum.ieee80211r='1' - uci set wireless.wifinet$apnum.mobility_domain=$mobility_domain - uci set wireless.wifinet$apnum.ft_over_ds='0' - uci set wireless.wifinet$apnum.ft_psk_generate_local='1' - uci set wireless.wifinet$apnum.network='lan' - uci commit wireless + if [ $found -eq 0 ]; then + uci set wireless.mesh_$apall.encryption='none' + uci set wireless.wifinet$apnum=wifi-iface + uci set wireless.wifinet$apnum.device=$mesh_apRadio + uci set wireless.wifinet$apnum.mode='ap' + uci set wireless.wifinet$apnum.ssid=$mesh_id + uci set wireless.wifinet$apnum.encryption='none' + uci set wireless.wifinet$apnum.key=$key + uci set wireless.wifinet$apnum.ieee80211r='1' + uci set wireless.wifinet$apnum.mobility_domain=$mobility_domain + uci set wireless.wifinet$apnum.ft_over_ds='0' + uci set wireless.wifinet$apnum.ft_psk_generate_local='1' + uci set wireless.wifinet$apnum.network='lan' + uci commit wireless + fi + else apnum="${mesh_apRadio#radio}" apnum=$((apnum + 1)) + found=0 - # Check all existing wifinetX and remove if SSID matches with $mesh_id + # Check all existing wifinetX and remove if SSID matches with $mesh_id and mode is 'ap' while uci get wireless.wifinet$apnum > /dev/null 2>&1; do existing_ssid=$(uci get wireless.wifinet$apnum.ssid 2> /dev/null) - if [ "$existing_ssid" = "$mesh_id" ]; then - uci delete wireless.wifinet$apnum + existing_mode=$(uci get wireless.wifinet$apnum.mode 2> /dev/null) + if [ "$existing_ssid" = "$mesh_id" ] && [ "$existing_mode" = "ap" ]; then + if [ $found -eq 0 ]; then + found=1 + else + uci delete wireless.wifinet$apnum + fi fi apnum=$((apnum + 1)) done uci commit wireless - - uci set wireless.mesh_$apall.encryption='sae' - uci set wireless.mesh_$apall.key=$key - uci set wireless.wifinet$apnum=wifi-iface - uci set wireless.wifinet$apnum.device=$apall - uci set wireless.wifinet$apnum.mode='ap' - uci set wireless.wifinet$apnum.ssid=$mesh_id - uci set wireless.wifinet$apnum.encryption='sae' - uci set wireless.wifinet$apnum.key=$key - uci set wireless.wifinet$apnum.ieee80211r='1' - uci set wireless.wifinet$apnum.mobility_domain=$mobility_domain - uci set wireless.wifinet$apnum.ft_over_ds='0' - uci set wireless.wifinet$apnum.ft_psk_generate_local='1' - uci set wireless.wifinet$apnum.network='lan' - uci commit wireless + + if [ $found -eq 0 ]; then + uci set wireless.mesh_$apall.encryption='sae' + uci set wireless.mesh_$apall.key=$key + uci set wireless.wifinet$apnum=wifi-iface + uci set wireless.wifinet$apnum.device=$apall + uci set wireless.wifinet$apnum.mode='ap' + uci set wireless.wifinet$apnum.ssid=$mesh_id + uci set wireless.wifinet$apnum.encryption='sae' + uci set wireless.wifinet$apnum.key=$key + uci set wireless.wifinet$apnum.ieee80211r='1' + uci set wireless.wifinet$apnum.mobility_domain=$mobility_domain + uci set wireless.wifinet$apnum.ft_over_ds='0' + uci set wireless.wifinet$apnum.ft_psk_generate_local='1' + uci set wireless.wifinet$apnum.network='lan' + uci commit wireless + fi fi }