From patchwork Sun Jul 8 17:57:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [v3, 2/5] hood file: Use different files for www and for checksum comparison From: Adrian Schmutzler X-Patchwork-Id: 877 Message-Id: <1531072659-4217-2-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Sun, 8 Jul 2018 19:57:36 +0200 Signed-off-by: Adrian Schmutzler Reviewed-by: Fabian Bläse Reviewed-by: Robert Langhammer Tested-by: Fabian Bläse --- Changes in v2: none Changes in v3: Rebased --- 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 1a2c12a..b6ba3e3 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -83,7 +83,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 uci -q del "system.@system[0].hood" uci -q commit system @@ -106,7 +107,7 @@ if [ -s "$hoodfiletmp" ]; then # but without signature, every hood file we get is valid! 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 " ") @@ -185,6 +186,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" # This is a workaround to enable alfred on devices which do not see a configap during initial setup 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='Hood-Daten werden innerhalb von 5 Minuten neu prozessiert.' fi fi