From patchwork Mon Oct 30 19:08:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v2] fff-hoods: Use variables for hood file names From: Adrian Schmutzler X-Patchwork-Id: 643 Message-Id: <1509390507-6999-1-git-send-email-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Mon, 30 Oct 2017 20:08:27 +0100 Rebased as v2. Apply after port patch! 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 Reviewed-by: Christian Dresel Reviewed-by: Robert Langhammer rlanghammer@web.de --- .../fff-hoods/files/lib/functions/fff/keyxchange | 12 ++++++---- .../fff/fff-hoods/files/usr/sbin/configurehood | 27 +++++++++++----------- .../fff/fff-vpn-select/files/usr/sbin/vpn-select | 5 ++-- .../fff/fff-web/files/www/ssl/cgi-bin/home.html | 4 +++- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange b/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange index a2fc651..9aeb434 100644 --- a/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange +++ b/src/packages/fff/fff-hoods/files/lib/functions/fff/keyxchange @@ -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" } diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index 2945cf4..4f97dbd 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -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 diff --git a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select index 150efe2..85930a8 100755 --- a/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select +++ b/src/packages/fff/fff-vpn-select/files/usr/sbin/vpn-select @@ -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) 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 402670d..7931ea9 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 @@ -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='Hood-Daten werden innerhalb von 5 Minuten neu prozessiert.' fi fi