forked from freifunk-franken/firmware
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:
parent
4f3c30eb0e
commit
b88841352c
|
@ -4,12 +4,16 @@
|
|||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
hoodfile="/tmp/keyxchangev2data"
|
||||
hoodfilecopy="/www/hood/keyxchangev2data"
|
||||
hiddenapfile="/tmp/hiddenapflag"
|
||||
|
||||
getJsonPath() {
|
||||
jsonfile=""
|
||||
if [ -s /www/hood/keyxchangev2data ] ; then
|
||||
jsonfile="/www/hood/keyxchangev2data"
|
||||
elif [ -s /tmp/keyxchangev2data ] ; then
|
||||
jsonfile="/tmp/keyxchangev2data"
|
||||
if [ -s "$hoodfilecopy" ] ; then
|
||||
jsonfile="$hoodfilecopy"
|
||||
elif [ -s "$hoodfile" ] ; then
|
||||
jsonfile="$hoodfile"
|
||||
fi
|
||||
echo "$jsonfile"
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /usr/share/libubox/jshn.sh
|
||||
. /lib/functions/fff/keyxchange
|
||||
. /lib/functions/fff/wireless
|
||||
. /lib/functions/fff/timeserver
|
||||
|
||||
|
@ -8,7 +9,7 @@ sectorlocal=/etc/sectorfile
|
|||
sectortmp=/tmp/sectorfile
|
||||
sectorcopy=/www/hood/sectorfile
|
||||
|
||||
rm -f /tmp/keyxchangev2data
|
||||
rm -f "$hoodfile"
|
||||
|
||||
# Gatewaycheck function
|
||||
isGatewayAvailable() {
|
||||
|
@ -34,7 +35,7 @@ hasInternet() {
|
|||
|
||||
# Hidden AP check
|
||||
|
||||
if [ -f /tmp/hiddenapflag ]; then
|
||||
if [ -f "$hiddenapfile" ]; then
|
||||
if isGatewayAvailable ; then
|
||||
|
||||
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
|
||||
fi
|
||||
rm /tmp/hiddenapflag
|
||||
rm "$hiddenapfile"
|
||||
fi
|
||||
|
||||
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 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"
|
||||
[ -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
|
||||
|
@ -74,7 +75,7 @@ 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 /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 "$sectortmp"
|
||||
|
||||
|
@ -108,19 +109,19 @@ else
|
|||
# wait a moment to start the interface
|
||||
sleep 10;
|
||||
# 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:
|
||||
if [ -s /tmp/keyxchangev2data ]; then
|
||||
wget -T15 -t5 "http://[fe80::1%w2sta]:2342/sectorfile" -O "$sectortmp"
|
||||
fi
|
||||
else
|
||||
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
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -s /tmp/keyxchangev2data ]; then
|
||||
if [ -s "$hoodfile" ]; then
|
||||
|
||||
# we get a json file in this format:
|
||||
# https://pw.freifunk-franken.de/patch/205/
|
||||
|
@ -140,12 +141,12 @@ if [ -s /tmp/keyxchangev2data ]; then
|
|||
json_get_var mesh_type5 mesh_type5
|
||||
fi
|
||||
|
||||
catnew="$(cat /tmp/keyxchangev2data | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
|
||||
catold="$(cat /www/hood/keyxchangev2data 2>/dev/null | sed 's/"timestamp":[0-9]*/"timestamp":0/')"
|
||||
catnew="$(cat "$hoodfile" | 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 " ")
|
||||
sumold=$(echo "$catold" | sha256sum | cut -f1 -d " ")
|
||||
|
||||
json_load "$(cat /tmp/keyxchangev2data)"
|
||||
json_load "$(cat "$hoodfile")"
|
||||
|
||||
if [ "$sumnew" != "$sumold" ] ; then
|
||||
echo "New file detected, we reconfigure the Node";
|
||||
|
@ -193,7 +194,7 @@ if [ -s /tmp/keyxchangev2data ]; then
|
|||
fi
|
||||
|
||||
# here we set a bit for add hidden AP
|
||||
touch /tmp/hiddenapflag
|
||||
touch "$hiddenapfile"
|
||||
|
||||
# add 802.11s mesh if type == "802.11s"
|
||||
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 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"
|
||||
|
||||
else
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
. /lib/functions/fff/keyxchange
|
||||
. /usr/share/libubox/jshn.sh
|
||||
|
||||
make_config() {
|
||||
|
@ -8,7 +9,7 @@ make_config() {
|
|||
rm /tmp/fastd_fff_peers/*
|
||||
count=0
|
||||
Index=1
|
||||
json_load "$(cat /tmp/keyxchangev2data)"
|
||||
json_load "$(cat "$hoodfile")"
|
||||
json_select vpn
|
||||
# get fastd peers
|
||||
while json_select "$Index" > /dev/null
|
||||
|
@ -53,7 +54,7 @@ json_select ".." # back to root
|
|||
# main
|
||||
|
||||
# Only do something when file is here and greater 0 byte
|
||||
if [ -s /tmp/keyxchangev2data ]; then
|
||||
if [ -s "$hoodfile" ]; then
|
||||
# set some vars
|
||||
hostname=$(cat /proc/sys/kernel/hostname)
|
||||
mac=$(awk '{ mac=toupper($1); gsub(":", "", mac); print mac }' /sys/class/net/br-mesh/address 2>/dev/null)
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#!/usr/bin/haserl
|
||||
|
||||
<%
|
||||
. /lib/functions/fff/keyxchange
|
||||
|
||||
# prepare
|
||||
if [ "$REQUEST_METHOD" == "POST" ] ; then
|
||||
if [ "$POST_resethood" != "" ] ; then
|
||||
# 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>'
|
||||
fi
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue
Block a user