From f79409dbce07cbaa3a9c935e376f1ca928361e36 Mon Sep 17 00:00:00 2001 From: ben Date: Thu, 28 Sep 2023 19:05:28 +0000 Subject: [PATCH] Update 'root/etc/init.d/easymesh' --- root/etc/init.d/easymesh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/root/etc/init.d/easymesh b/root/etc/init.d/easymesh index 3b931d0..6caa96b 100755 --- a/root/etc/init.d/easymesh +++ b/root/etc/init.d/easymesh @@ -18,6 +18,9 @@ load_easymesh_config() { iapp=$(uci -q get easymesh.config.iapp) brlan=$(uci -q get network.@device[0].name) role=$(uci -q get easymesh.config.role) + backbone=$(uci get easymesh.@easymesh[0].backbone) + apname=$(uci get easymesh.@easymesh[0].apname) + appass=$(uci get easymesh.@easymesh[0].appass) } ap_mode_stop() { @@ -77,6 +80,33 @@ add_wifi_mesh() { uci commit wireless fi fi + + if [ "$backbone" = "wifi" ]; then + # Getting the radio to configure as a client (Assuming $clientRadio is the variable for client radio) + clientRadio="radio0" # Change this to the actual variable representing the radio to configure as a client + + # Check all existing wifinetX and remove if SSID matches with $apname + clientnum="${clientRadio#radio}" + clientnum=$((clientnum + 1)) + + while uci get wireless.wifinet$clientnum > /dev/null 2>&1; do + existing_ssid=$(uci get wireless.wifinet$clientnum.ssid 2> /dev/null) + if [ "$existing_ssid" = "$apname" ]; then + uci delete wireless.wifinet$clientnum + fi + clientnum=$((clientnum + 1)) + done + + # Add new WiFi client + uci set wireless.wifinet$clientnum=wifi-iface + uci set wireless.wifinet$clientnum.device=$clientRadio + uci set wireless.wifinet$clientnum.mode='sta' + uci set wireless.wifinet$clientnum.ssid=$apname + uci set wireless.wifinet$clientnum.encryption='psk2' # Or whatever encryption method is appropriate + uci set wireless.wifinet$clientnum.key=$appass + uci set wireless.wifinet$clientnum.network='wwan' + uci commit wireless +fi if [ "$encryption" != 1 ]; then apnum="${mesh_apRadio#radio}"