Skip to content
Snippets Groups Projects
Commit d0ef635b authored by Adrian Schmutzler's avatar Adrian Schmutzler Committed by Tim Niemeyer
Browse files

hood file: Use different files for www and for checksum comparison


At the moment, we use the same file for detecting changes in a
new hood file and for broadcasting the hood information to be used
by mesh routers.

However, there may be situations where we don't want to broadcast
an existing hoodfile. We, on the other hand, cannot delete it
then, as we need the file for checking changes in the temporary
hoodfile.
We also cannot just switch the wXconfig state to achieve this
goal, as we need a trigger to do that (which is the same file we
are discussing about).

So, in this patch, we introduce two files, one for the checksum
comparison and one for the hood info broadcast. Those can now be
set and deleted (in a later patch) as it is required by their
respective tasks. This should also improve code clarity to the
reader ...

Signed-off-by: default avatarAdrian Schmutzler <freifunk@adrianschmutzler.de>

Reviewed-by: default avatarFabian Bläse <fabian@blaese.de>
Reviewed-by: default avatarRobert Langhammer <rlanghammer@web.de>
Tested-by: default avatarFabian Bläse <fabian@blaese.de>
Reviewed-by: default avatarTim Niemeyer <tim@tn-x.org>
parent 845886d1
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
......@@ -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"
elif [ -s "$hoodfileref" ] ; then
jsonfile="$hoodfileref"
elif [ -s "$hoodfiletmp" ] ; then
jsonfile="$hoodfiletmp"
fi
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment