[PATCH] nodewatcher: Provide additional information about WiFi interfaces

Adrian Schmutzler freifunk at adrianschmutzler.de
Fr Dez 29 16:00:02 CET 2017


This patch additional information to the nodewatcher XML:
- wlan_channel: Channel of interface (number only)
- wlan_ssid: SSID available through iw dev
- wlan_type: Type of interface (AP, mesh, IBSS)
- wlan_width: Width of frequency band (20 vs. 40 MHz, number only)

The nodewatcher file from this patch can be copied manually to
devices with older firmware.

The patch includes some comment typo fixes.

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

Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 src/packages/fff/fff-nodewatcher/Makefile               |  2 +-
 .../fff/fff-nodewatcher/files/usr/sbin/nodewatcher      | 17 +++++++++++++----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/packages/fff/fff-nodewatcher/Makefile b/src/packages/fff/fff-nodewatcher/Makefile
index 02ee78b..adfab26 100644
--- a/src/packages/fff/fff-nodewatcher/Makefile
+++ b/src/packages/fff/fff-nodewatcher/Makefile
@@ -1,7 +1,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=fff-nodewatcher
-PKG_VERSION:=43
+PKG_VERSION:=44
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
diff --git a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
index e4a9bc9..7a9dbe6 100755
--- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
+++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
@@ -2,7 +2,7 @@
 # Netmon Nodewatcher (C) 2010-2012 Freifunk Oldenburg
 # License; GPL v3
 
-SCRIPT_VERSION="43"
+SCRIPT_VERSION="44"
 
 test -f /tmp/started || exit
 
@@ -30,7 +30,7 @@ else
     }
 fi
 
-#this method checks id the logfile has bekome too big and deletes the first X lines
+#This method checks if the log file has become too big and deletes the first X lines
 delete_log() {
     if [ -f "$SCRIPT_LOGFILE" ]; then
         if [ "$(find "$SCRIPT_LOGFILE" -printf "%s")" -gt "6000" ]; then
@@ -50,7 +50,7 @@ inArray() {
     return 1
 }
 
-#this method generates the crawl data xml file that is beeing fetched by netmon
+#This method generates the crawl data XML file that is being fetched by netmon
 #and provided by a small local httpd
 crawl() {
     #Get system data from other locations
@@ -199,7 +199,16 @@ crawl() {
             /ESSID/ { split($0, e, "\""); printf "<wlan_essid>"e[2]"</wlan_essid>" }
             /Freq/{ split($3, f, " "); printf "<wlan_frequency>"f[1]f[2]"</wlan_frequency>" }
             /Tx-Power/{ split($0, p, "="); sub(/[[:space:]]*$/, "", p[2]); printf "<wlan_tx_power>"p[2]"</wlan_tx_power>" }
-        ')"</$iface>"
+        ')
+
+        interface_data=$interface_data$(iw dev "${iface}" info 2>/dev/null | awk '
+            /ssid/{ split($0, s, " "); printf "<wlan_ssid>"s[2]"</wlan_ssid>" }
+            /type/ { split($0, t, " "); printf "<wlan_type>"t[2]"</wlan_type>" }
+            /channel/{ split($0, c, " "); printf "<wlan_channel>"c[2]"</wlan_channel>" }
+            /width/{ split($0, w, ": "); sub(/ .*/, "", w[2]); printf "<wlan_width>"w[2]"</wlan_width>" }
+        ')
+
+        interface_data=$interface_data"</$iface>"
     done
 
     err "$(date): Collecting information from batman advanced and its interfaces"
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev