[v2,3/3] fff-web: Add 5 GHz to wifiscan plus some tidying up

Submitted by Adrian Schmutzler on Oct. 19, 2017, 10:25 p.m.

Details

Message ID 1508451907-49231-3-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Oct. 19, 2017, 10:25 p.m.
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 <freifunk@adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 .../fff-web/files/www/ssl/cgi-bin/wifiscan.html    | 112 +++++++++++++--------
 1 file changed, 70 insertions(+), 42 deletions(-)

Patch hide | download patch | download mbox

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='<span style="color:red">Nein</span>'
 fi
-%>
-<table style="width: 100%">
-<tr><td>
-<form method="post" enctype="multipart/form-data">
-<fieldset>
-	<legend>Wifi Node File</legend>
-	<table>
-		<tr><th style="width: 20em;text-align:left;padding-bottom:10px">Alias Liste vorhanden:</th><td style="padding-bottom:10px"><%= "$havelist" %></td></tr>
-		<tr><th style="width: 20em;text-align:left">Upload Node-Liste:</th><td><input type="file" name="nodelist" /></td></tr>
-		<tr><td colspan="2" style="padding:10px 0">Hier kann eine Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
-		<tr><td colspan="2"><input type="submit" name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
-		<tr><td colspan="2" style="padding:10px 0">Wenn der Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring bezogen werden:</td></tr>
-		<tr><th style="width: 20em;text-align:left">Name der Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
-		<tr><td colspan="2" style="padding:10px 0"><input type="submit" name="wifidownload" value="Datei-Download von Monitoring" /></td></tr>
-	</table>
-</fieldset>
-</form>
-</td></tr>
-<tr><td>
-<fieldset>
-	<legend>Wifi Scan</legend>
-	<table class="wifitable">
-		<tr>
-			<th>Name</th>
-			<th>Kanal</th>
-			<th>Signal</th>
-			<th>Typ</th>
-			<th>MAC</th>
-			<th>Encryption</th>
-		</tr>
 
-<%
-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: ([^"]*).*/, \
-		"<!-- \\5 --><tr><ssid>\\2</ssid><td>\\4</td><td>\\5 dBm</td><td>\\3</td><mac>\\1</mac><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&amp;#')
+		"<!-- \\5 --><tr><'${ssid}'>\\2</'${ssid}'><td>\\4</td><td>\\5 dBm</td><td>\\3</td><'${mac}'>\\1</'${mac}'><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&amp;#'
 		# 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#.*<mac>\(.*\)</mac>.*#\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#.*</mac>\(.*\)</tr>.*#\1#')
 		echo "<tr><td>${ssid}</td>${midpart}<td>${mac}</td>${endpart}</tr>"
 	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: ([^"]*).*/, \
-		"<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5 dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&amp;#'
-		# 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
+%>
+	<tr><td>
+	<fieldset>
+		<legend>Wifi Scan: <%= "$freq" %></legend>
+		<table class="wifitable">
+			<tr>
+				<th>Name</th>
+				<th>Kanal</th>
+				<th>Signal</th>
+				<th>Typ</th>
+				<th>MAC</th>
+				<th>Encryption</th>
+			</tr>
+
+<%
+	if [ -s /tmp/wifinodelist ] ; then
+		firststep="$(readIWinfo "$iface" "ssid" "mac")"
+		rewriteIWinfo "$firststep"
+	else
+		readIWinfo "$iface" "td" "td"
+	fi
 %>
+		</table>
+	</fieldset>
+	</td></tr>
+<%
+}
+
+%>
+<table style="width: 100%">
+<tr><td>
+<form method="post" enctype="multipart/form-data">
+<fieldset>
+	<legend>Wifi Node File</legend>
+	<table>
+		<tr><th style="width: 20em;text-align:left;padding-bottom:10px">Alias Liste vorhanden:</th><td style="padding-bottom:10px"><%= "$havelist" %></td></tr>
+		<tr><th style="width: 20em;text-align:left">Upload Node-Liste:</th><td><input type="file" name="nodelist" /></td></tr>
+		<tr><td colspan="2" style="padding:10px 0">Hier kann eine Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
+		<tr><td colspan="2"><input type="submit" name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
+		<tr><td colspan="2" style="padding:10px 0">Wenn der Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring bezogen werden:</td></tr>
+		<tr><th style="width: 20em;text-align:left">Name der Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
+		<tr><td colspan="2" style="padding:10px 0"><input type="submit" name="wifidownload" value="Datei-Download von Monitoring" /></td></tr>
 	</table>
 </fieldset>
+</form>
 </td></tr>
+<%
+if uci -q get wireless.w2ap > /dev/null ; then
+	printWifiScan "w2ap"
+fi
+if uci -q get wireless.w5ap > /dev/null ; then
+	printWifiScan "w5ap"
+fi
+%>
 </table>
 
 <%in /www/ssl/cgi-bin/footer %>

Comments

Tim Niemeyer Nov. 4, 2017, 2:43 p.m.
Hi

Ah.. Aufräumarbeiten.. Sehr gut.. Wäre es viel Arbeit diesen Patch als erstes von den drein drauf zu haben? Ich denke, danach sind ein paar der Anmerkungen von eben obsolete.

Weiteres unten..

Am Freitag, den 20.10.2017, 00:25 +0200 schrieb Adrian Schmutzler:
> 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 <freifunk@adrianschmutzler.de>
> 
> > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  .../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='<span style="color:red">Nein</span>'
>  fi
> -%>
> -<table style="width: 100%">
> -<tr><td>
> -<form method="post" enctype="multipart/form-data">
> -<fieldset>
> > -	<legend>Wifi Node File</legend>
> > -	<table>
> > -		<tr><th style="width: 20em;text-align:left;padding-bottom:10px">Alias Liste vorhanden:</th><td style="padding-bottom:10px"><%= "$havelist" %></td></tr>
> > -		<tr><th style="width: 20em;text-align:left">Upload Node-Liste:</th><td><input type="file" name="nodelist" /></td></tr>
> > -		<tr><td colspan="2" style="padding:10px 0">Hier kann eine Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
> > -		<tr><td colspan="2"><input type="submit" name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
> > -		<tr><td colspan="2" style="padding:10px 0">Wenn der Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring bezogen werden:</td></tr>
> > -		<tr><th style="width: 20em;text-align:left">Name der Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
> > -		<tr><td colspan="2" style="padding:10px 0"><input type="submit" name="wifidownload" value="Datei-Download von Monitoring" /></td></tr>
> > -	</table>
> -</fieldset>
> -</form>
> -</td></tr>
> -<tr><td>
> -<fieldset>
> > -	<legend>Wifi Scan</legend>
> > -	<table class="wifitable">
> > -		<tr>
> > -			<th>Name</th>
> > -			<th>Kanal</th>
> > -			<th>Signal</th>
> > -			<th>Typ</th>
> > -			<th>MAC</th>
> > -			<th>Encryption</th>
> > -		</tr>
>  
> -<%
> -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: ([^"]*).*/, \
> > -		"<!-- \\5 --><tr><ssid>\\2</ssid><td>\\4</td><td>\\5 dBm</td><td>\\3</td><mac>\\1</mac><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&amp;#')
> > +		"<!-- \\5 --><tr><'${ssid}'>\\2</'${ssid}'><td>\\4</td><td>\\5 dBm</td><td>\\3</td><'${mac}'>\\1</'${mac}'><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&amp;#'
> >  		# 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#.*<mac>\(.*\)</mac>.*#\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#.*</mac>\(.*\)</tr>.*#\1#')
> >  		echo "<tr><td>${ssid}</td>${midpart}<td>${mac}</td>${endpart}</tr>"
> >  	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: ([^"]*).*/, \
> > -		"<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5 dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' | sort -n | sed 's#&#\&amp;#'
> > -		# 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
> +%>
> > +	<tr><td>
> > +	<fieldset>
> > +		<legend>Wifi Scan: <%= "$freq" %></legend>
> > +		<table class="wifitable">
> > +			<tr>
> > +				<th>Name</th>
> > +				<th>Kanal</th>
> > +				<th>Signal</th>
> > +				<th>Typ</th>
> > +				<th>MAC</th>
> > +				<th>Encryption</th>
> > +			</tr>
> +
> +<%
> > +	if [ -s /tmp/wifinodelist ] ; then
> > +		firststep="$(readIWinfo "$iface" "ssid" "mac")"
> > +		rewriteIWinfo "$firststep"
> > +	else
> > +		readIWinfo "$iface" "td" "td"
> > +	fi
>  %>
> > +		</table>
> > +	</fieldset>
> > +	</td></tr>
> +<%
> +}
> +
> +%>
> +<table style="width: 100%">
> +<tr><td>
> +<form method="post" enctype="multipart/form-data">
> +<fieldset>
> > +	<legend>Wifi Node File</legend>
> > +	<table>
> > +		<tr><th style="width: 20em;text-align:left;padding-bottom:10px">Alias Liste vorhanden:</th><td style="padding-bottom:10px"><%= "$havelist" %></td></tr>
> > +		<tr><th style="width: 20em;text-align:left">Upload Node-Liste:</th><td><input type="file" name="nodelist" /></td></tr>
> > +		<tr><td colspan="2" style="padding:10px 0">Hier kann eine Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
> > +		<tr><td colspan="2"><input type="submit" name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
> > +		<tr><td colspan="2" style="padding:10px 0">Wenn der Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring bezogen werden:</td></tr>
> > +		<tr><th style="width: 20em;text-align:left">Name der Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
> > +		<tr><td colspan="2" style="padding:10px 0"><input type="submit" name="wifidownload" value="Datei-Download von Monitoring" /></td></tr>
> >  	</table>
>  </fieldset>
> +</form>
>  </td></tr>
> +<%
> +if uci -q get wireless.w2ap > /dev/null ; then
> +	printWifiScan "w2ap"
Besser phy0/1 dafür nehmen:

Wenn der Eintrag da ist, dann gleich den Wert als Device zum Scannen
nehmen: uci get wireless.radio0.phy

Die Phy's haben den Vorteil, dass die auch gehen sollten, wenn wir grad
noch im  Station-Mode sind.


> +fi
> +if uci -q get wireless.w5ap > /dev/null ; then
> > +	printWifiScan "w5ap"
> +fi
> +%>
>  </table>
>  
>  <%in /www/ssl/cgi-bin/footer %>
> -- 
> 2.7.4
>
Adrian Schmutzler Nov. 4, 2017, 2:44 p.m.
Hallo,

kann ich einfach aus allen drei Patches einen bauen?

Da es ja inzwischen ohnehin als Paket betrachtet wird, ist das wohl auch am stimmigsten...

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Tim Niemeyer
> Sent: Samstag, 4. November 2017 15:43
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH v2 3/3] fff-web: Add 5 GHz to wifiscan plus some tidying
> up
> 
> Hi
> 
> Ah.. Aufräumarbeiten.. Sehr gut.. Wäre es viel Arbeit diesen Patch als erstes
> von den drein drauf zu haben? Ich denke, danach sind ein paar der
> Anmerkungen von eben obsolete.
> 
> Weiteres unten..
> 
> Am Freitag, den 20.10.2017, 00:25 +0200 schrieb Adrian Schmutzler:
> > 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 <freifunk@adrianschmutzler.de>
> >
> > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > ---
> >  .../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='<span style="color:red">Nein</span>'
> >  fi
> > -%>
> > -<table style="width: 100%">
> > -<tr><td>
> > -<form method="post" enctype="multipart/form-data"> -<fieldset>
> > > -	<legend>Wifi Node File</legend>
> > > -	<table>
> > > -		<tr><th style="width: 20em;text-align:left;padding-
> bottom:10px">Alias Liste vorhanden:</th><td style="padding-
> bottom:10px"><%= "$havelist" %></td></tr>
> > > -		<tr><th style="width: 20em;text-align:left">Upload Node-
> Liste:</th><td><input type="file" name="nodelist" /></td></tr>
> > > -		<tr><td colspan="2" style="padding:10px 0">Hier kann eine
> Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
> > > -		<tr><td colspan="2"><input type="submit"
> name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
> > > -		<tr><td colspan="2" style="padding:10px 0">Wenn der
> Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring
> bezogen werden:</td></tr>
> > > -		<tr><th style="width: 20em;text-align:left">Name der
> Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
> > > -		<tr><td colspan="2" style="padding:10px 0"><input
> type="submit" name="wifidownload" value="Datei-Download von
> Monitoring" /></td></tr>
> > > -	</table>
> > -</fieldset>
> > -</form>
> > -</td></tr>
> > -<tr><td>
> > -<fieldset>
> > > -	<legend>Wifi Scan</legend>
> > > -	<table class="wifitable">
> > > -		<tr>
> > > -			<th>Name</th>
> > > -			<th>Kanal</th>
> > > -			<th>Signal</th>
> > > -			<th>Typ</th>
> > > -			<th>MAC</th>
> > > -			<th>Encryption</th>
> > > -		</tr>
> >
> > -<%
> > -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: ([^"]*).*/, \
> > > -		"<!-- \\5 --><tr><ssid>\\2</ssid><td>\\4</td><td>\\5
> dBm</td><td>\\3</td><mac>\\1</mac><td>\\6</td></tr>", "g"); print r;}'
> | sort -n | sed 's#&#\&amp;#')
> > > +		"<!-- \\5 --
> ><tr><'${ssid}'>\\2</'${ssid}'><td>\\4</td><td>\\5
> dBm</td><td>\\3</td><'${mac}'>\\1</'${mac}'><td>\\6</td></tr>", "g");
> print r;}' | sort -n | sed 's#&#\&amp;#'
> > >  		# 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#.*<mac>\(.*\)</mac>.*#\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#.*</mac>\(.*\)</tr>.*#\1#')
> > >  		echo
> "<tr><td>${ssid}</td>${midpart}<td>${mac}</td>${endpart}</tr>"
> > >  	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: ([^"]*).*/, \
> > > -		"<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5
> dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' |
> sort -n | sed 's#&#\&amp;#'
> > > -		# 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
> > +%>
> > > +	<tr><td>
> > > +	<fieldset>
> > > +		<legend>Wifi Scan: <%= "$freq" %></legend>
> > > +		<table class="wifitable">
> > > +			<tr>
> > > +				<th>Name</th>
> > > +				<th>Kanal</th>
> > > +				<th>Signal</th>
> > > +				<th>Typ</th>
> > > +				<th>MAC</th>
> > > +				<th>Encryption</th>
> > > +			</tr>
> > +
> > +<%
> > > +	if [ -s /tmp/wifinodelist ] ; then
> > > +		firststep="$(readIWinfo "$iface" "ssid" "mac")"
> > > +		rewriteIWinfo "$firststep"
> > > +	else
> > > +		readIWinfo "$iface" "td" "td"
> > > +	fi
> >  %>
> > > +		</table>
> > > +	</fieldset>
> > > +	</td></tr>
> > +<%
> > +}
> > +
> > +%>
> > +<table style="width: 100%">
> > +<tr><td>
> > +<form method="post" enctype="multipart/form-data"> <fieldset>
> > > +	<legend>Wifi Node File</legend>
> > > +	<table>
> > > +		<tr><th style="width: 20em;text-align:left;padding-
> bottom:10px">Alias Liste vorhanden:</th><td style="padding-
> bottom:10px"><%= "$havelist" %></td></tr>
> > > +		<tr><th style="width: 20em;text-align:left">Upload Node-
> Liste:</th><td><input type="file" name="nodelist" /></td></tr>
> > > +		<tr><td colspan="2" style="padding:10px 0">Hier kann eine
> Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
> > > +		<tr><td colspan="2"><input type="submit"
> name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
> > > +		<tr><td colspan="2" style="padding:10px 0">Wenn der
> Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring
> bezogen werden:</td></tr>
> > > +		<tr><th style="width: 20em;text-align:left">Name der
> Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
> > > +		<tr><td colspan="2" style="padding:10px 0"><input
> type="submit"
> > > +name="wifidownload" value="Datei-Download von Monitoring"
> > > +/></td></tr>
> > >  	</table>
> >  </fieldset>
> > +</form>
> >  </td></tr>
> > +<%
> > +if uci -q get wireless.w2ap > /dev/null ; then
> > +	printWifiScan "w2ap"
> Besser phy0/1 dafür nehmen:
> 
> Wenn der Eintrag da ist, dann gleich den Wert als Device zum Scannen
> nehmen: uci get wireless.radio0.phy
> 
> Die Phy's haben den Vorteil, dass die auch gehen sollten, wenn wir grad noch
> im  Station-Mode sind.
> 
> 
> > +fi
> > +if uci -q get wireless.w5ap > /dev/null ; then
> > > +	printWifiScan "w5ap"
> > +fi
> > +%>
> >  </table>
> >
> >  <%in /www/ssl/cgi-bin/footer %>
> > --
> > 2.7.4
> >
Tim Niemeyer Nov. 4, 2017, 2:49 p.m.
Am Samstag, den 04.11.2017, 15:44 +0100 schrieb mail@adrianschmutzler.de:
> Hallo,
> 
> kann ich einfach aus allen drei Patches einen bauen?
> 
> Da es ja inzwischen ohnehin als Paket betrachtet wird, ist das wohl auch am stimmigsten...
Es ist ein Patchset. Für die Nachvollziehbarkein wäre es gut, wenn es
getrennt bleibt. Ich habe beobachtet, dass dieses Patchset nun schon
eine ganze Weile rum lag und es niemand reviewed hat. Ein Grund könnte
auch die Komplexität sein. Diese gilt es für den Reviewer als möglichst
angenehm zu gestalten.

Der erste Patch als Vorbereitung, das Auslagern in Funktionen. Dieser
Patch sollte an der Funktion selbst möglichst nichts ändern.

Dann darauf aufbauend weitere Patches, die dann einzelne Sachen fixen
oder hinzufügen.

Tim

> 
> Grüße
> 
> Adrian
> 
> > -----Original Message-----
> > > > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> > Of Tim Niemeyer
> > Sent: Samstag, 4. November 2017 15:43
> > > > To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> > dev@freifunk.net
> > Subject: Re: [PATCH v2 3/3] fff-web: Add 5 GHz to wifiscan plus some tidying
> > up
> > 
> > Hi
> > 
> > Ah.. Aufräumarbeiten.. Sehr gut.. Wäre es viel Arbeit diesen Patch als erstes
> > von den drein drauf zu haben? Ich denke, danach sind ein paar der
> > Anmerkungen von eben obsolete.
> > 
> > Weiteres unten..
> > 
> > Am Freitag, den 20.10.2017, 00:25 +0200 schrieb Adrian Schmutzler:
> > > 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 <freifunk@adrianschmutzler.de>
> > > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > > 
> > > ---
> > >  .../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='<span style="color:red">Nein</span>'
> > > 
> > >  fi
> > > -%>
> > > -<table style="width: 100%">
> > > -<tr><td>
> > > -<form method="post" enctype="multipart/form-data"> -<fieldset>
> > > > > > > > -	<legend>Wifi Node File</legend>
> > > > > > > > -	<table>
> > > > -		<tr><th style="width: 20em;text-align:left;padding-
> > 
> > bottom:10px">Alias Liste vorhanden:</th><td style="padding-
> > bottom:10px"><%= "$havelist" %></td></tr>
> > > > -		<tr><th style="width: 20em;text-align:left">Upload Node-
> > 
> > Liste:</th><td><input type="file" name="nodelist" /></td></tr>
> > > > -		<tr><td colspan="2" style="padding:10px 0">Hier kann eine
> > 
> > Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
> > > > -		<tr><td colspan="2"><input type="submit"
> > 
> > name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
> > > > -		<tr><td colspan="2" style="padding:10px 0">Wenn der
> > 
> > Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring
> > bezogen werden:</td></tr>
> > > > -		<tr><th style="width: 20em;text-align:left">Name der
> > 
> > Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
> > > > -		<tr><td colspan="2" style="padding:10px 0"><input
> > 
> > type="submit" name="wifidownload" value="Datei-Download von
> > Monitoring" /></td></tr>
> > > > -	</table>
> > > 
> > > -</fieldset>
> > > -</form>
> > > -</td></tr>
> > > -<tr><td>
> > > -<fieldset>
> > > > > > > > -	<legend>Wifi Scan</legend>
> > > > > > > > -	<table class="wifitable">
> > > > > > > > -		<tr>
> > > > > > > > -			<th>Name</th>
> > > > > > > > -			<th>Kanal</th>
> > > > > > > > -			<th>Signal</th>
> > > > > > > > -			<th>Typ</th>
> > > > > > > > -			<th>MAC</th>
> > > > > > > > -			<th>Encryption</th>
> > > > -		</tr>
> > > 
> > > -<%
> > > -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: ([^"]*).*/, \
> > > > -		"<!-- \\5 --><tr><ssid>\\2</ssid><td>\\4</td><td>\\5
> > 
> > dBm</td><td>\\3</td><mac>\\1</mac><td>\\6</td></tr>", "g"); print r;}'
> > > sort -n | sed 's#&#\&amp;#')
> > > > +		"<!-- \\5 --
> > > 
> > > <tr><'${ssid}'>\\2</'${ssid}'><td>\\4</td><td>\\5
> > 
> > dBm</td><td>\\3</td><'${mac}'>\\1</'${mac}'><td>\\6</td></tr>", "g");
> > print r;}' | sort -n | sed 's#&#\&amp;#'
> > > >  		# 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#.*<mac>\(.*\)</mac>.*#\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#.*</mac>\(.*\)</tr>.*#\1#')
> > > >  		echo
> > 
> > "<tr><td>${ssid}</td>${midpart}<td>${mac}</td>${endpart}</tr>"
> > > >  	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: ([^"]*).*/, \
> > > > -		"<!-- \\5 --><tr><td>\\2</td><td>\\4</td><td>\\5
> > 
> > dBm</td><td>\\3</td><td>\\1</td><td>\\6</td></tr>", "g"); print r;}' |
> > sort -n | sed 's#&#\&amp;#'
> > > > -		# 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
> > > 
> > > +%>
> > > > > > > > +	<tr><td>
> > > > > > > > +	<fieldset>
> > > > > > > > +		<legend>Wifi Scan: <%= "$freq" %></legend>
> > > > > > > > +		<table class="wifitable">
> > > > > > > > +			<tr>
> > > > > > > > +				<th>Name</th>
> > > > > > > > +				<th>Kanal</th>
> > > > > > > > +				<th>Signal</th>
> > > > > > > > +				<th>Typ</th>
> > > > > > > > +				<th>MAC</th>
> > > > > > > > +				<th>Encryption</th>
> > > > +			</tr>
> > > 
> > > +
> > > +<%
> > > > > > > > +	if [ -s /tmp/wifinodelist ] ; then
> > > > > > > > +		firststep="$(readIWinfo "$iface" "ssid" "mac")"
> > > > > > > > +		rewriteIWinfo "$firststep"
> > > > > > > > +	else
> > > > > > > > +		readIWinfo "$iface" "td" "td"
> > > > +	fi
> > > 
> > >  %>
> > > > > > > > +		</table>
> > > > > > > > +	</fieldset>
> > > > +	</td></tr>
> > > 
> > > +<%
> > > +}
> > > +
> > > +%>
> > > +<table style="width: 100%">
> > > +<tr><td>
> > > +<form method="post" enctype="multipart/form-data"> <fieldset>
> > > > > > > > +	<legend>Wifi Node File</legend>
> > > > > > > > +	<table>
> > > > +		<tr><th style="width: 20em;text-align:left;padding-
> > 
> > bottom:10px">Alias Liste vorhanden:</th><td style="padding-
> > bottom:10px"><%= "$havelist" %></td></tr>
> > > > +		<tr><th style="width: 20em;text-align:left">Upload Node-
> > 
> > Liste:</th><td><input type="file" name="nodelist" /></td></tr>
> > > > +		<tr><td colspan="2" style="padding:10px 0">Hier kann eine
> > 
> > Node-Liste (WiFiAnalyzer-Stil) hochgeladen werden.</td></tr>
> > > > +		<tr><td colspan="2"><input type="submit"
> > 
> > name="wifiupload" value="Datei-Upload auf Router" /></td></tr>
> > > > +		<tr><td colspan="2" style="padding:10px 0">Wenn der
> > 
> > Router mit dem Internet verbunden ist, kann die Node-Liste vom Monitoring
> > bezogen werden:</td></tr>
> > > > +		<tr><th style="width: 20em;text-align:left">Name der
> > 
> > Hood:</th><td><input type="text" name="hood" value="" /></td></tr>
> > > > +		<tr><td colspan="2" style="padding:10px 0"><input
> > 
> > type="submit"
> > > > +name="wifidownload" value="Datei-Download von Monitoring"
> > > > +/></td></tr>
> > > >  	</table>
> > > 
> > >  </fieldset>
> > > +</form>
> > >  </td></tr>
> > > +<%
> > > +if uci -q get wireless.w2ap > /dev/null ; then
> > > +	printWifiScan "w2ap"
> > 
> > Besser phy0/1 dafür nehmen:
> > 
> > Wenn der Eintrag da ist, dann gleich den Wert als Device zum Scannen
> > nehmen: uci get wireless.radio0.phy
> > 
> > Die Phy's haben den Vorteil, dass die auch gehen sollten, wenn wir grad noch
> > im  Station-Mode sind.
> > 
> > 
> > > +fi
> > > +if uci -q get wireless.w5ap > /dev/null ; then
> > > > +	printWifiScan "w5ap"
> > > 
> > > +fi
> > > +%>
> > >  </table>
> > > 
> > >  <%in /www/ssl/cgi-bin/footer %>
> > > --
> > > 2.7.4
> > > 
> 
>