[PATCH 2/2] fff-web: Disable WiFi devices via Web UI

Adrian Schmutzler freifunk at adrianschmutzler.de
So Nov 19 18:52:44 CET 2017


This uses the new fff-config option to provide users the
possibility of enabling/disabling WiFi devices via the Web UI.

Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 .../fff-web/files/www/ssl/cgi-bin/settings.html    | 45 ++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
index 7d8e65f..ef365a8 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/settings.html
@@ -1,7 +1,11 @@
 #!/usr/bin/haserl
 
 <%
+. /lib/functions/fff/wireless
+
 # write
+radio2="$(wifiGetPhy "2")"
+radio5="$(wifiGetPhy "5")"
 if [ "$REQUEST_METHOD" == "POST" ] ; then
 	#check for valid hostname as specified in rfc 1123
 	#see http://stackoverflow.com/a/3824105
@@ -63,8 +67,29 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
 				uci -q set "system.poe_passthrough.value=0"
 			fi
 		fi
+		
+		if [ -n "$radio2" ] ; then
+			if [ "$POST_enable24ghz" == "on" ] ; then
+				uci -q set "fff.wifi.disable24ghz=0"
+				uci -q set "wireless.${radio2}.disabled=0"
+			else
+				uci -q set "fff.wifi.disable24ghz=1"
+				uci -q set "wireless.${radio2}.disabled=1"
+			fi
+		fi
+		if [ -n "$radio5" ] ; then
+			if [ "$POST_enable5ghz" == "on" ] ; then
+				uci -q set "fff.wifi.disable5ghz=0"
+				uci -q set "wireless.${radio5}.disabled=0"
+			else
+				uci -q set "fff.wifi.disable5ghz=1"
+				uci -q set "wireless.${radio5}.disabled=1"
+			fi
+		fi
 
 		uci -q commit
+		
+		wifi > /dev/null
 
 		MSG='<span class="green">Daten gespeichert! - Bitte Router neustarten.</span>'
 	fi
@@ -90,6 +115,16 @@ if [ "$(uci -q get 'fff.notifyupdate.resetonupgrade')" == "0" ] ; then # not set
 else
 	upgrade_reset_checked="$chkd"
 fi
+if [ "$(uci -q get 'fff.wifi.disable24ghz')" = "1" ] ; then # not set=0
+	enable24ghz_checked=""
+else
+	enable24ghz_checked="$chkd"
+fi
+if [ "$(uci -q get 'fff.wifi.disable5ghz')" = "1" ] ; then # not set=0
+	enable5ghz_checked=""
+else
+	enable5ghz_checked="$chkd"
+fi
 %>
 <% show_msg %>
 <form method="post">
@@ -145,6 +180,16 @@ fi
 			<input type="checkbox" name="poe_passthrough" <%= ${poe_pt_checked} %>/>
 		</td></tr>
 		<% fi %>
+		<% if [ -n "$radio2" ] ; then %>
+		<tr><th>Enable 2.4 GHz WiFi device:</th><td colspan="2">
+			<input type="checkbox" name="enable24ghz" <%= ${enable24ghz_checked} %>/>
+		</td></tr>
+		<% fi %>
+		<% if [ -n "$radio5" ] ; then %>
+		<tr><th>Enable 5 GHz WiFi device:</th><td colspan="2">
+			<input type="checkbox" name="enable5ghz" <%= ${enable5ghz_checked} %>/>
+		</td></tr>
+		<% fi %>
 		
 	</table>
 </fieldset>
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev