fff-hoods: Use variables for hood file names

Since names may change, this puts the relevant file names for
hood files into variables, so they can be changed at once
without the risk of forgetting some occurrences.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
Reviewed-by: Christian Dresel <fff@chrisi01.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
This commit is contained in:
Adrian Schmutzler 2017-10-30 20:08:27 +01:00 committed by Tim Niemeyer
parent 4f3c30eb0e
commit b88841352c
4 changed files with 28 additions and 20 deletions

View File

@ -4,12 +4,16 @@
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
hoodfile="/tmp/keyxchangev2data"
hoodfilecopy="/www/hood/keyxchangev2data"
hiddenapfile="/tmp/hiddenapflag"
getJsonPath() { getJsonPath() {
jsonfile="" jsonfile=""
if [ -s /www/hood/keyxchangev2data ] ; then if [ -s "$hoodfilecopy" ] ; then
jsonfile="/www/hood/keyxchangev2data" jsonfile="$hoodfilecopy"
elif [ -s /tmp/keyxchangev2data ] ; then elif [ -s "$hoodfile" ] ; then
jsonfile="/tmp/keyxchangev2data" jsonfile="$hoodfile"
fi fi
echo "$jsonfile" echo "$jsonfile"
} }

View File

@ -1,6 +1,7 @@
#!/bin/sh #!/bin/sh
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
. /lib/functions/fff/keyxchange
. /lib/functions/fff/wireless . /lib/functions/fff/wireless
. /lib/functions/fff/timeserver . /lib/functions/fff/timeserver
@ -8,7 +9,7 @@ sectorlocal=/etc/sectorfile
sectortmp=/tmp/sectorfile sectortmp=/tmp/sectorfile
sectorcopy=/www/hood/sectorfile sectorcopy=/www/hood/sectorfile
rm -f /tmp/keyxchangev2data rm -f "$hoodfile"
# Gatewaycheck function # Gatewaycheck function
isGatewayAvailable() { isGatewayAvailable() {
@ -34,7 +35,7 @@ hasInternet() {
# Hidden AP check # Hidden AP check
if [ -f /tmp/hiddenapflag ]; then if [ -f "$hiddenapfile" ]; then
if isGatewayAvailable ; then if isGatewayAvailable ; then
for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
@ -55,7 +56,7 @@ if [ -f /tmp/hiddenapflag ]; then
wifi wifi
fi fi
rm /tmp/hiddenapflag rm "$hiddenapfile"
fi fi
lat=$(uci -q get system.@system[0].latitude) lat=$(uci -q get system.@system[0].latitude)
@ -63,7 +64,7 @@ long=$(uci -q get system.@system[0].longitude)
# if we have Internet, we download the Hoodfile from the keyxchangev2 # if we have Internet, we download the Hoodfile from the keyxchangev2
if hasInternet ; then if hasInternet ; then
wget -T15 -t5 "http://keyserver.freifunk-franken.de/v2/?lat=$lat&long=$long" -O /tmp/keyxchangev2data wget -T15 -t5 "http://keyserver.freifunk-franken.de/v2/?lat=$lat&long=$long" -O "$hoodfile"
rm -f "$sectortmp" rm -f "$sectortmp"
[ -s "$sectorlocal" ] || rm -f "$sectorcopy" # If internet present, no custom config should be distributed, except when local file is present [ -s "$sectorlocal" ] || rm -f "$sectorcopy" # If internet present, no custom config should be distributed, except when local file is present
#UPLINK: No uplink download if internet present #UPLINK: No uplink download if internet present
@ -74,7 +75,7 @@ else
if ! isGatewayAvailable ; then if ! isGatewayAvailable ; then
#now we haven't a gateway in Range, we search for a hidden AP to get a keyxchangev2data file! #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 #first we delete all wifi settings
rm -f /www/hood/keyxchangev2data # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place rm -f "$hoodfilecopy" # delete this, so interfaces are recreated if reconnect with unchanged hood file takes place
rm -f "$sectorcopy" # always delete: no broadcast for isolated device rm -f "$sectorcopy" # always delete: no broadcast for isolated device
rm -f "$sectortmp" rm -f "$sectortmp"
@ -108,19 +109,19 @@ else
# wait a moment to start the interface # wait a moment to start the interface
sleep 10; sleep 10;
# and here we can download the Hoodfile from the other node # and here we can download the Hoodfile from the other node
wget -T15 -t5 "http://[fe80::1%w2sta]:2342/keyxchangev2data" -O /tmp/keyxchangev2data wget -T15 -t5 "http://[fe80::1%w2sta]:2342/keyxchangev2data" -O "$hoodfile"
#UPLINK: Set up uplink data on first contact: #UPLINK: Set up uplink data on first contact:
if [ -s /tmp/keyxchangev2data ]; then if [ -s /tmp/keyxchangev2data ]; then
wget -T15 -t5 "http://[fe80::1%w2sta]:2342/sectorfile" -O "$sectortmp" wget -T15 -t5 "http://[fe80::1%w2sta]:2342/sectorfile" -O "$sectortmp"
fi fi
else else
echo "We have a Gateway in Range, we load the keyxchangev2data from fe80::1" echo "We have a Gateway in Range, we load the keyxchangev2data from fe80::1"
wget -T15 -t5 "http://[fe80::1%br-mesh]:2342/keyxchangev2data" -O /tmp/keyxchangev2data wget -T15 -t5 "http://[fe80::1%br-mesh]:2342/keyxchangev2data" -O "$hoodfile"
#UPLINK: Do nothing #UPLINK: Do nothing
fi fi
fi fi
if [ -s /tmp/keyxchangev2data ]; then if [ -s "$hoodfile" ]; then
# we get a json file in this format: # we get a json file in this format:
# https://pw.freifunk-franken.de/patch/205/ # https://pw.freifunk-franken.de/patch/205/
@ -140,12 +141,12 @@ if [ -s /tmp/keyxchangev2data ]; then
json_get_var mesh_type5 mesh_type5 json_get_var mesh_type5 mesh_type5
fi fi
catnew="$(cat /tmp/keyxchangev2data | sed 's/"timestamp":[0-9]*/"timestamp":0/')" catnew="$(cat "$hoodfile" | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
catold="$(cat /www/hood/keyxchangev2data 2>/dev/null | sed 's/"timestamp":[0-9]*/"timestamp":0/')" catold="$(cat "$hoodfilecopy" 2>/dev/null | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
sumnew=$(echo "$catnew" | sha256sum | cut -f1 -d " ") sumnew=$(echo "$catnew" | sha256sum | cut -f1 -d " ")
sumold=$(echo "$catold" | sha256sum | cut -f1 -d " ") sumold=$(echo "$catold" | sha256sum | cut -f1 -d " ")
json_load "$(cat /tmp/keyxchangev2data)" json_load "$(cat "$hoodfile")"
if [ "$sumnew" != "$sumold" ] ; then if [ "$sumnew" != "$sumold" ] ; then
echo "New file detected, we reconfigure the Node"; echo "New file detected, we reconfigure the Node";
@ -193,7 +194,7 @@ if [ -s /tmp/keyxchangev2data ]; then
fi fi
# here we set a bit for add hidden AP # here we set a bit for add hidden AP
touch /tmp/hiddenapflag touch "$hiddenapfile"
# add 802.11s mesh if type == "802.11s" # add 802.11s mesh if type == "802.11s"
if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ] ) || [ "$mesh_type2" == "802.11s" ]; then if ( [ -n "$radio5" ] && [ "$mesh_type5" == "802.11s" ] ) || [ "$mesh_type2" == "802.11s" ]; then
@ -221,7 +222,7 @@ if [ -s /tmp/keyxchangev2data ]; then
# copy the file to webroot so that other mesh routers can download it; # 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 # copy only after all other steps so IF can be reentered if something goes wrong
cp /tmp/keyxchangev2data /www/hood/ cp "$hoodfile" "$hoodfilecopy"
cp "$sectortmp" "$sectorcopy" cp "$sectortmp" "$sectorcopy"
else else

View File

@ -1,5 +1,6 @@
#!/bin/sh #!/bin/sh
. /lib/functions/fff/keyxchange
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
make_config() { make_config() {
@ -8,7 +9,7 @@ make_config() {
rm /tmp/fastd_fff_peers/* rm /tmp/fastd_fff_peers/*
count=0 count=0
Index=1 Index=1
json_load "$(cat /tmp/keyxchangev2data)" json_load "$(cat "$hoodfile")"
json_select vpn json_select vpn
# get fastd peers # get fastd peers
while json_select "$Index" > /dev/null while json_select "$Index" > /dev/null
@ -53,7 +54,7 @@ json_select ".." # back to root
# main # main
# Only do something when file is here and greater 0 byte # Only do something when file is here and greater 0 byte
if [ -s /tmp/keyxchangev2data ]; then if [ -s "$hoodfile" ]; then
# set some vars # set some vars
hostname=$(cat /proc/sys/kernel/hostname) hostname=$(cat /proc/sys/kernel/hostname)
mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null) mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null)

View File

@ -1,11 +1,13 @@
#!/usr/bin/haserl #!/usr/bin/haserl
<% <%
. /lib/functions/fff/keyxchange
# prepare # prepare
if [ "$REQUEST_METHOD" == "POST" ] ; then if [ "$REQUEST_METHOD" == "POST" ] ; then
if [ "$POST_resethood" != "" ] ; then if [ "$POST_resethood" != "" ] ; then
# reset hood # reset hood
rm /www/hood/keyxchangev2data 2> /dev/null rm "$hoodfilecopy" 2> /dev/null
MSG='<span class="green">Hood-Daten werden innerhalb von 5 Minuten neu prozessiert.</span>' MSG='<span class="green">Hood-Daten werden innerhalb von 5 Minuten neu prozessiert.</span>'
fi fi
fi fi