From 05bb813f2943774d82f6c05a59d501b3f9baeb97 Mon Sep 17 00:00:00 2001 From: olijf Date: Tue, 5 Apr 2016 16:44:58 +0200 Subject: [PATCH] Added dhcp config Configure the dhcp server in the correct way, so when switching between wifi configs the it still connect. --- src/script/wifi-switch-netconfig.sh | 32 +++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/script/wifi-switch-netconfig.sh b/src/script/wifi-switch-netconfig.sh index 41ebc3a..fba353e 100755 --- a/src/script/wifi-switch-netconfig.sh +++ b/src/script/wifi-switch-netconfig.sh @@ -9,14 +9,38 @@ if [ "$SEEN" -lt 1 ] then #see https://github.com/Doodle3D/doodle3d-firmware/blob/master/src/network/wlanconfig.lua#L188 for reference #check if network on top is enabled - uci get wireless.@wifi-iface[0].disabled - RESULT=$? - if [ $RESULT -eq 0 ] + if [ $(uci get wireless.@wifi-iface[0].mode) == "sta" ]; then + logger "switching to AP" + #configure dhcp + uci delete network.wlan + uci set network.wlan=interface + uci set network.wlan.netmask=$(uci get wifibox.general.network_ap_netmask) + uci set network.wlan.proto=static + uci set network.wlan.ipaddr=$(uci get wifibox.general.network_ap_address) + + uci set dhcp.wlan=dhcp + uci set dhcp.wlan.start=100 + uci set dhcp.wlan.leasetime=12h + uci set dhcp.wlan.limit=150 + uci set dhcp.wlan.interface=wlan + uci set wireless.@wifi-iface[0].disabled=1 #disable current config uci set wireless.@wifi-iface[1].disabled=0 #enable last used network uci reorder wireless.@wifi-iface[0]=2 #reorder networks so last used config goes to the top again - uci commit wireless #commit changes + uci commit #commit changes + /etc/init.d/network reload #reload network module so changes become effective + else + logger "switching to STA $(uci get wireless.@wifi-iface[0].mode)" + uci set wireless.@wifi-iface[0].disabled=1 #disable current config + uci set wireless.@wifi-iface[1].disabled=0 #enable last used network + uci reorder wireless.@wifi-iface[0]=2 #reorder networks so last used config goes to the top again + + uci delete network.wlan + uci set network.wlan=interface + uci set network.wlan.proto=dhcp + uci delete dhcp.wlan + uci commit #commit changes /etc/init.d/network reload #reload network module so changes become effective fi fi