From patchwork Thu Oct 19 22:25:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v2,3/3] fff-web: Add 5 GHz to wifiscan plus some tidying up From: Adrian Schmutzler X-Patchwork-Id: 610 Message-Id: <1508451907-49231-3-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Fri, 20 Oct 2017 00:25:07 +0200 This patch ... - provides a 5 GHz wifi scan - changes to w2ap iface since w2mesh might be w2ibss - puts a lot of stuff into functions for easy reuse Introduced in v2. Signed-off-by: Adrian Schmutzler Tested-by: Adrian Schmutzler --- .../fff-web/files/www/ssl/cgi-bin/wifiscan.html | 112 +++++++++++++-------- 1 file changed, 70 insertions(+), 42 deletions(-) diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html index 29f99e5..4fc01dd 100755 --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/wifiscan.html @@ -37,46 +37,23 @@ if [ -s /tmp/wifinodelist ] ; then else havelist='Nein' fi -%> - - -
-
-
- Wifi Node File - - - - - - - - -
Alias Liste vorhanden:<%= "$havelist" %>
Upload Node-Liste:
Hier kann eine Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.
Wenn der Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring bezogen werden:
Name der Hood:
-
-
-
-
- Wifi Scan - - - - - - - - - -<% -if [ -s /tmp/wifinodelist ] ; then - firststep=$(iwinfo w2mesh scan |\ +readIWinfo() { + local iface=$1 + local ssid=$2 + local mac=$3 + + iwinfo "$iface" scan |\ awk -v RS='' \ '{r = gensub(/.*Address: ([0-9A-F:]*)?.*ESSID: "?(unknown|[^"]*)"?[ ]*\n.*Mode: ([^ ]*).*Channel: ([0-9]*).*Signal: (-[0-9]*) dBm.*Encryption: ([^"]*).*/, \ - "\\2\\1", "g"); print r;}' | sort -n | sed 's#&#\&#') + "<'${ssid}'>\\2<'${mac}'>\\1", "g"); print r;}' | sort -n | sed 's#&#\&#' # The HTML comment contains the signal quality to allow sorting +} - echo "$firststep" | while read line ; do +rewriteIWinfo() { + local data="$1" + + echo "$data" | while read line ; do mac="$(echo "$line" | sed -e 's#.*\(.*\).*#\1#')" routerid="$(grep -i -e "$mac" /tmp/wifinodelist | awk -F"|" '{print $2}')" if [ -n "$routerid" ] ; then @@ -93,17 +70,68 @@ if [ -s /tmp/wifinodelist ] ; then endpart=$(echo "$line" | sed -e 's#.*\(.*\).*#\1#') echo "${midpart}${endpart}" done -else - iwinfo w2mesh scan |\ - awk -v RS='' \ - '{r = gensub(/.*Address: ([0-9A-F:]*)?.*ESSID: "?(unknown|[^"]*)"?[ ]*\n.*Mode: ([^ ]*).*Channel: ([0-9]*).*Signal: (-[0-9]*) dBm.*Encryption: ([^"]*).*/, \ - "", "g"); print r;}' | sort -n | sed 's#&#\&#' - # The HTML comment contains the signal quality to allow sorting -fi +} + +printWifiScan() { + local iface=$1 + local freq="2.4 GHz" + if [ "$iface" = "w5ap" ] ; then + freq="5 GHz" + fi +%> + +<% +} + +%> +
NameKanalSignalTypMACEncryption
\\4\\5 dBm\\3\\6
\\4\\5 dBm\\3\\6
${ssid}${mac}
\\2\\4\\5 dBm\\3\\1\\6
+
+ Wifi Scan: <%= "$freq" %> + + + + + + + + + + +<% + if [ -s /tmp/wifinodelist ] ; then + firststep="$(readIWinfo "$iface" "ssid" "mac")" + rewriteIWinfo "$firststep" + else + readIWinfo "$iface" "td" "td" + fi %> +
NameKanalSignalTypMACEncryption
+
+
+ +<% +if uci -q get wireless.w2ap > /dev/null ; then + printWifiScan "w2ap" +fi +if uci -q get wireless.w5ap > /dev/null ; then + printWifiScan "w5ap" +fi +%>
+
+
+ Wifi Node File + + + + + + + +
Alias Liste vorhanden:<%= "$havelist" %>
Upload Node-Liste:
Hier kann eine Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.
Wenn der Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring bezogen werden:
Name der Hood:
+
<%in /www/ssl/cgi-bin/footer %>