From ef00054916d9e15c997d8c109b718d23430fda40 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Fri, 23 Nov 2018 16:56:43 +0100 Subject: [PATCH] configurehood/nodewatcher: Also process hood ID in addition to name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So far, the Monitoring evaluates hoods based on their names. This introduces several problems, most prominently a hood re-creation if it is renamed at the KeyXchange. Since we have unique hood IDs in the KeyXchange and the Monitoring retrieves those via hoods.php, it is logical use this information instead of relying on string comparison. This requires the hood files to contain an additional field "id". While this has not been implemented, the changes in this patch will still work and just write empty data to the uci field and alfred data. For local hoods, the "id" in the hood file will remain unset. Signed-off-by: Adrian Schmutzler Reviewed-by: Robert Langhammer Reviewed-by: Fabian Bläse --- src/packages/fff/fff-hoods/Makefile | 2 +- src/packages/fff/fff-hoods/files/usr/sbin/configurehood | 5 ++++- src/packages/fff/fff-nodewatcher/Makefile | 2 +- src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile index 5233e611..264d28ab 100644 --- a/src/packages/fff/fff-hoods/Makefile +++ b/src/packages/fff/fff-hoods/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-hoods -PKG_VERSION:=4 +PKG_VERSION:=5 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index e31ba219..de60c21d 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -95,6 +95,7 @@ else rm -f "$hoodfilewww" # delete this, so wrong hood file is not broadcasted anymore uci -q del "system.@system[0].hood" + uci -q del "system.@system[0].hoodid" uci -q commit system reload_config @@ -125,6 +126,7 @@ if [ -s "$hoodfiletmp" ]; then json_select hood json_get_var hood name + json_get_var hoodid id [ -n "$mesh_id" ] || json_get_var mesh_id mesh_id [ -n "$mesh_bssid" ] || json_get_var mesh_bssid mesh_bssid [ -n "$mesh_essid" ] || json_get_var mesh_essid mesh_essid @@ -146,8 +148,9 @@ if [ -s "$hoodfiletmp" ]; then exit 0 fi - echo "Setting hood name: $hood" + echo "Setting hood name: $hood (ID $hoodid)" uci -q set "system.@system[0].hood=$hood" + uci -q set "system.@system[0].hoodid=$hoodid" uci -q commit system reload_config diff --git a/src/packages/fff/fff-nodewatcher/Makefile b/src/packages/fff/fff-nodewatcher/Makefile index 927c6293..3c66a0ae 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:=50 +PKG_VERSION:=51 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 9486fbc8..9d96b07b 100755 --- a/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher +++ b/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher @@ -12,7 +12,7 @@ if ! lock -n "$lockfile"; then fi trap "lock -u \"$lockfile\"" INT TERM EXIT -SCRIPT_VERSION="50" +SCRIPT_VERSION="51" #Get the configuration from the uci configuration file #If it does not exists, then get it from a normal bash file with variables. @@ -147,6 +147,7 @@ crawl() { SYSTEM_DATA=$SYSTEM_DATA"${position_comment}" SYSTEM_DATA=$SYSTEM_DATA"${contact}" SYSTEM_DATA=$SYSTEM_DATA"$(uci -q get "system.@system[0].hood")" + SYSTEM_DATA=$SYSTEM_DATA"$(uci -q get "system.@system[0].hoodid")" SYSTEM_DATA=$SYSTEM_DATA"$distname" SYSTEM_DATA=$SYSTEM_DATA"$distversion" SYSTEM_DATA=$SYSTEM_DATA"$cpu"