From patchwork Sun Jun 10 12:06:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [v1,4/4] Revert "configurehood: Prevent connecting two hoods" From: Tim Niemeyer X-Patchwork-Id: 847 Message-Id: <20180610120601.21151-5-tim@tn-x.org> To: franken-dev@freifunk.net Date: Sun, 10 Jun 2018 14:06:01 +0200 Fixes #95 This reverts commit 6cc6b4b786d24faf067a6b29118e997c28c4e70b. Signed-off-by: Tim Niemeyer Reviewed-by: Christian Dresel Reviewed-by: Adrian Schmutzler Reviewed-by: Robert Langhammer --- Changes in v1: None .../fff/fff-hoods/files/usr/sbin/configurehood | 37 +--------------------- 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index eaf2578..8b04256 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -9,7 +9,6 @@ sectorlocal=/etc/sectorfile sectortmp=/tmp/sectorfile sectorcopy=/www/hood/sectorfile -resetnetworkfile=/tmp/resetnetwork hoodlocal=/etc/hoodfile rm -f "$hoodfile" @@ -73,12 +72,6 @@ fi lat=$(uci -q get fff.system.latitude) long=$(uci -q get fff.system.longitude) -# reenable network interfaces in case we disabled them earlier -if [ -f "$resetnetworkfile" ]; then - /etc/init.d/network restart - rm "$resetnetworkfile" -fi - if [ -s "$hoodlocal" ]; then hoodfile="$hoodlocal" echo "Use local hood file" @@ -144,35 +137,7 @@ else fi else echo "We have a Gateway in Range, we load the keyxchangev2data from fe80::1" - # check eth first - oldhood="" - ethfile="${hoodfile}eth" - for eth in $(batctl if | grep "eth" | sed -nE 's/.*(eth[^:]+):.*/\1/p'); do - for mac in $(batctl n | grep "$eth" | sed -nE 's/.*eth[0-9.]+\s+([^\s]+)\s.*/\1/p'); do - EUI="$(echo "$mac" | awk -F: '{ printf("%02x%s:%sff:fe%s:%s%s\n", xor(("0x"$1),2), $2, $3, $4, $5, $6) }')" - wget -T2 -t3 "http://[fe80::${EUI}%${eth}]:2342/keyxchangev2data" -O "$ethfile" - if [ -s "$ethfile" ]; then - json_load "$(cat "$ethfile")" - json_select hood - json_get_var newhood name - if [ -n "$oldhood" ] && [ -n "$newhood" ] && ( ! [ "$newhood" = "$oldhood" ] ) ; then - # 2nd hood found, kill interface and go on (next try in 5 min.) - echo "Two hoods detected. Remove cables to stay in just one." - ifconfig "$eth" down - touch "$resetnetworkfile" - continue 2 # go to the next interface - fi - mv "$ethfile" "$hoodfile" # Only use hoodfile if sane - [ -n "$oldhood" ] || oldhood="$newhood" # only set oldhood once - fi - done - done - if [ ! -s "$hoodfile" ]; then - # Only load hoodfile from gateway if not already present from local network - # - This gives local network a precedence (take the hood from local network) - # - This prevents file insertion from a third person, as I will only connect via LAN to who I trust - wget -T15 -t5 "http://[fe80::1%br-mesh]:2342/keyxchangev2data" -O "$hoodfile" - fi + wget -T15 -t5 "http://[fe80::1%br-mesh]:2342/keyxchangev2data" -O "$hoodfile" #UPLINK: Do nothing fi fi