From patchwork Wed May 6 14:48:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [3/3] fff-hoods: create hoodfile AP earlier From: Fabian Blaese X-Patchwork-Id: 1389 Message-Id: <20200506144803.590699-3-fabian@blaese.de> To: franken-dev@freifunk.net Date: Wed, 6 May 2020 16:48:03 +0200 The hidden AP creation is moved to the end of configurehood, so it is executed right after hoodfile changes are processed. When keeping the long sleep before trying to gather hoodfiles via wireless or ethernet, this should decrease the delay after hood changes to a minimum, as mesh nodes don't have to wait until configurehood on VPN nodes is executed a second time. Because hoodfiles gathered via wireless or ethernet are not copied to hoodfilewww (which is used to deliver the active hoodfile via ethernet or wireless), only authoritative hoodfiles (keyxchange and gateway) trigger the creation of a hidden AP. Signed-off-by: Fabian Bläse Reviewed-by: Robert Langhammer --- .../fff-hoods/files/usr/sbin/configurehood | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index 261b926..0722e77 100755 --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood @@ -38,30 +38,6 @@ hasInternet() { return 1 } -# Hidden AP check - -if [ -s "$hoodfilewww" ] && isGatewayAvailable ; then - needwifi="0" - for radio in $(wifiListRadio); do - freq="$(wifiGetFreq $radio)" - - # Break: wXconfig is up - [ "$(uci get "wireless.w${freq}configap.disabled")" = "0" ] && continue - # Break: No mesh interface - [ "$(uci get "wireless.w${freq}mesh.disabled")" = "0" ] || continue - - # Enable configap - uci set wireless.w${freq}configap.disabled='0' - uci commit wireless - needwifi="1" - done - - if [ "$needwifi" = "1" ]; then - reload_config - sleep 10 - fi -fi - if [ -s "$hoodfilelocal" ]; then # remove webroot hoodfile to prevent offering local hoodfiles to neighbours rm -f "$hoodfilewww" @@ -247,3 +223,26 @@ else echo "We haven't got a file. We do nothing. We try it again in 5 minutes..."; exit 0 fi + +# Hidden AP check +if [ -s "$hoodfilewww" ] && isGatewayAvailable; then + needwifi="0" + for radio in $(wifiListRadio); do + freq="$(wifiGetFreq $radio)" + + # Break: wXconfig is up + [ "$(uci get "wireless.w${freq}configap.disabled")" = "0" ] && continue + # Break: No mesh interface + [ "$(uci get "wireless.w${freq}mesh.disabled")" = "0" ] || continue + + # Enable configap + uci set wireless.w${freq}configap.disabled='0' + uci commit wireless + needwifi="1" + done + + if [ "$needwifi" = "1" ]; then + reload_config + sleep 10 + fi +fi