[PATCH 2/4] hood file: Use different files for www and for checksum comparison

Adrian Schmutzler freifunk at adrianschmutzler.de
Mi Jun 13 16:36:04 CEST 2018


Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
---
 src/packages/fff/fff-hoods/files/usr/sbin/configurehood           | 6 ++++--
 src/packages/fff/fff-hoodutils/files/lib/functions/fff/keyxchange | 3 +++
 src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html          | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index b0c43ed..baee487 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -89,7 +89,8 @@ else
 		if ! isGatewayAvailable ; then
 			#now we haven't a gateway in Range, we search for a hidden AP to get a keyxchangev2data file!
 			#first we delete all wifi settings
-			rm -f "$hoodfilewww" # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place
+			rm -f "$hoodfileref" # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place
+			rm -f "$hoodfilewww" # delete this, so wrong hood file is not broadcasted anymore
 			rm -f "$sectorfilewww" # always delete: no broadcast for isolated device
 			rm -f "$sectorfiletmp"
 
@@ -134,7 +135,7 @@ if [ -s "$hoodfiletmp" ]; then
 	fi
 
 	catnew="$(cat "$hoodfiletmp" | sed 's/"timestamp”: *"[0-9]*"/"timestamp":0/')"
-	catold="$(cat "$hoodfilewww" 2>/dev/null | sed 's/"timestamp”: *"[0-9]*"/"timestamp":0/')"
+	catold="$(cat "$hoodfileref" 2>/dev/null | sed 's/"timestamp”: *"[0-9]*"/"timestamp":0/')"
 	sumnew=$(echo "$catnew" | sha256sum | cut -f1 -d " ")
 	sumold=$(echo "$catold" | sha256sum | cut -f1 -d " ")
 
@@ -213,6 +214,7 @@ if [ -s "$hoodfiletmp" ]; then
 
 		# copy the file to webroot so that other mesh routers can download it;
 		# copy only after all other steps so IF can be reentered if something goes wrong
+		cp "$hoodfiletmp" "$hoodfileref"
 		cp "$hoodfiletmp" "$hoodfilewww"
 		[ -s "$sectorfiletmp" ] && cp "$sectorfiletmp" "$sectorfilewww"
 
diff --git a/src/packages/fff/fff-hoodutils/files/lib/functions/fff/keyxchange b/src/packages/fff/fff-hoodutils/files/lib/functions/fff/keyxchange
index 4d624a1..40ebe4f 100644
--- a/src/packages/fff/fff-hoodutils/files/lib/functions/fff/keyxchange
+++ b/src/packages/fff/fff-hoodutils/files/lib/functions/fff/keyxchange
@@ -5,12 +5,15 @@
 . /usr/share/libubox/jshn.sh
 
 hoodfiletmp="/tmp/hoodfile"
+hoodfileref="/tmp/hoodfileref"
 hoodfilewww="/www/hood/keyxchangev2data"
 
 getJsonPath() {
 	jsonfile=""
 	if [ -s "$hoodfilewww" ] ; then
 		jsonfile="$hoodfilewww"
+	if [ -s "$hoodfileref" ] ; then
+		jsonfile="$hoodfileref"
 	elif [ -s "$hoodfiletmp" ] ; then
 		jsonfile="$hoodfiletmp"
 	fi
diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
index ef71eb4..bc15df7 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/home.html
@@ -8,7 +8,7 @@
 if [ "$REQUEST_METHOD" == "POST" ] ; then
 	if [ "$POST_resethood" != "" ] ; then
 		# reset hood
-		rm "$hoodfilewww" 2> /dev/null
+		rm "$hoodfileref" 2> /dev/null
 		MSG='<span class="green">Hood-Daten werden innerhalb von 5 Minuten neu prozessiert.</span>'
 	fi
 fi
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev