fff-hoods: Remove gateway-up condition for hidden AP

Submitted by Adrian Schmutzler on Oct. 27, 2017, 6:16 p.m.

Details

Message ID 1509128193-4005-1-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Oct. 27, 2017, 6:16 p.m.
Since the hidden AP clause is entered only once, there may be a case where
the router has been set up and hiddenapfile created, but the gateway being
temporarily unavailable. In this case, no configap would be set up.

This can be easily fixed by removing the gateway-available condition.
In fact, removing this has no negative side effects, as if the gateway
would be permanently off, the router would go into wXsta mode and
configap would be destroyed again anyway.

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 .../fff/fff-hoods/files/usr/sbin/configurehood     | 35 ++++++++++------------
 1 file changed, 16 insertions(+), 19 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index 1eadc41..19a498a 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -38,26 +38,23 @@  hasInternet() {
 # Hidden AP check
 
 if [ -f "$hiddenapfile" ]; then
-	if isGatewayAvailable ; then
-
-		for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
-			channel=$(uci get "wireless.${radio}.channel")
-			iface="configap2"
-			if [ "$channel" -gt "14" ]; then
-				iface="configap5"
-			fi
-			uci set network.${iface}=interface
-			uci set network.${iface}.proto='static'
-			uci set network.${iface}.ip6addr='fe80::1/64'
-			if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface" "configap" "1"; then
-				echo "Can't add Config interface on $radio."
-				exit 1
-			fi
-		done
-		uci commit network
+	for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
+		channel=$(uci get "wireless.${radio}.channel")
+		iface="configap2"
+		if [ "$channel" -gt "14" ]; then
+			iface="configap5"
+		fi
+		uci set network.${iface}=interface
+		uci set network.${iface}.proto='static'
+		uci set network.${iface}.ip6addr='fe80::1/64'
+		if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface" "configap" "1"; then
+			echo "Can't add Config interface on $radio."
+			exit 1
+		fi
+	done
+	uci commit network
 
-		wifi
-	fi
+	wifi
 	rm "$hiddenapfile"
 fi
 

Comments

Christian Dresel Oct. 31, 2017, 7:28 a.m.
Hallo Adrian

diesen Fall hatte ich tatsächlich auch schon mal, hab aber nie genau
drauf geguckt warum das passiert ist.

Die Abfrage is GatewayAvailable hatte den Grund, das man das Timeouts
der Gateways mit abfangen möchte.

Flag wird gesetzt wenn GW da ist
5min später
Flag wird geprüft UND wenn GW immer noch da ist, ist es kein Timeout und
configap wird geöffnet

du machst nun ein:
Flag wird gesetzt wenn GW da ist
5min später
Flag wird geprüft und es wird auf jeden Fall configap geöffnet obwohl
vielleicht schon kein GW mehr da ist (weil es vllt. im ersten Fall schon
Richtung Timeout lief...)

mfg

Christian


On 27.10.2017 20:16, Adrian Schmutzler wrote:
> Since the hidden AP clause is entered only once, there may be a case where
> the router has been set up and hiddenapfile created, but the gateway being
> temporarily unavailable. In this case, no configap would be set up.
> 
> This can be easily fixed by removing the gateway-available condition.
> In fact, removing this has no negative side effects, as if the gateway
> would be permanently off, the router would go into wXsta mode and
> configap would be destroyed again anyway.
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 35 ++++++++++------------
>  1 file changed, 16 insertions(+), 19 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 1eadc41..19a498a 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -38,26 +38,23 @@ hasInternet() {
>  # Hidden AP check
>  
>  if [ -f "$hiddenapfile" ]; then
> -	if isGatewayAvailable ; then
> -
> -		for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
> -			channel=$(uci get "wireless.${radio}.channel")
> -			iface="configap2"
> -			if [ "$channel" -gt "14" ]; then
> -				iface="configap5"
> -			fi
> -			uci set network.${iface}=interface
> -			uci set network.${iface}.proto='static'
> -			uci set network.${iface}.ip6addr='fe80::1/64'
> -			if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface" "configap" "1"; then
> -				echo "Can't add Config interface on $radio."
> -				exit 1
> -			fi
> -		done
> -		uci commit network
> +	for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-device,\1,p'); do
> +		channel=$(uci get "wireless.${radio}.channel")
> +		iface="configap2"
> +		if [ "$channel" -gt "14" ]; then
> +			iface="configap5"
> +		fi
> +		uci set network.${iface}=interface
> +		uci set network.${iface}.proto='static'
> +		uci set network.${iface}.ip6addr='fe80::1/64'
> +		if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface" "configap" "1"; then
> +			echo "Can't add Config interface on $radio."
> +			exit 1
> +		fi
> +	done
> +	uci commit network
>  
> -		wifi
> -	fi
> +	wifi
>  	rm "$hiddenapfile"
>  fi
>  
>
Adrian Schmutzler Oct. 31, 2017, 9:09 a.m.
Hallo Christian,

siehe unten.

> -----Original Message-----
> From: Christian Dresel [mailto:fff@chrisi01.de]
> Sent: Dienstag, 31. Oktober 2017 08:28
> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
> dev@freifunk.net
> Subject: Re: [PATCH] fff-hoods: Remove gateway-up condition for hidden AP
> 
> Hallo Adrian
> 
> diesen Fall hatte ich tatsächlich auch schon mal, hab aber nie genau drauf
> geguckt warum das passiert ist.
> 
> Die Abfrage is GatewayAvailable hatte den Grund, das man das Timeouts der
> Gateways mit abfangen möchte.
> 
> Flag wird gesetzt wenn GW da ist
> 5min später
> Flag wird geprüft UND wenn GW immer noch da ist, ist es kein Timeout und
> configap wird geöffnet
> 
> du machst nun ein:
> Flag wird gesetzt wenn GW da ist
> 5min später
> Flag wird geprüft und es wird auf jeden Fall configap geöffnet obwohl
> vielleicht schon kein GW mehr da ist (weil es vllt. im ersten Fall schon
> Richtung Timeout lief...)

Wenn kein Gateway mehr da ist, geht der Router direkt danach in den wXsta Modus und der configap wird ohnehin sofort wieder gelöscht!

Insofern ist das egal, wenn er ohne GW aufgemacht wird. Oder hast du was anderes gemeint?

Grüße

Adrian

> 
> mfg
> 
> Christian
> 
> 
> On 27.10.2017 20:16, Adrian Schmutzler wrote:
> > Since the hidden AP clause is entered only once, there may be a case
> > where the router has been set up and hiddenapfile created, but the
> > gateway being temporarily unavailable. In this case, no configap would be
> set up.
> >
> > This can be easily fixed by removing the gateway-available condition.
> > In fact, removing this has no negative side effects, as if the gateway
> > would be permanently off, the router would go into wXsta mode and
> > configap would be destroyed again anyway.
> >
> > Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> > ---
> >  .../fff/fff-hoods/files/usr/sbin/configurehood     | 35 ++++++++++----------
> --
> >  1 file changed, 16 insertions(+), 19 deletions(-)
> >
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index 1eadc41..19a498a 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -38,26 +38,23 @@ hasInternet() {
> >  # Hidden AP check
> >
> >  if [ -f "$hiddenapfile" ]; then
> > -	if isGatewayAvailable ; then
> > -
> > -		for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-
> 9]*\)=wifi-device,\1,p'); do
> > -			channel=$(uci get "wireless.${radio}.channel")
> > -			iface="configap2"
> > -			if [ "$channel" -gt "14" ]; then
> > -				iface="configap5"
> > -			fi
> > -			uci set network.${iface}=interface
> > -			uci set network.${iface}.proto='static'
> > -			uci set network.${iface}.ip6addr='fe80::1/64'
> > -			if ! wifiAddAP "$radio" "config.franken.freifunk.net"
> "$iface" "configap" "1"; then
> > -				echo "Can't add Config interface on $radio."
> > -				exit 1
> > -			fi
> > -		done
> > -		uci commit network
> > +	for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-
> device,\1,p'); do
> > +		channel=$(uci get "wireless.${radio}.channel")
> > +		iface="configap2"
> > +		if [ "$channel" -gt "14" ]; then
> > +			iface="configap5"
> > +		fi
> > +		uci set network.${iface}=interface
> > +		uci set network.${iface}.proto='static'
> > +		uci set network.${iface}.ip6addr='fe80::1/64'
> > +		if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface"
> "configap" "1"; then
> > +			echo "Can't add Config interface on $radio."
> > +			exit 1
> > +		fi
> > +	done
> > +	uci commit network
> >
> > -		wifi
> > -	fi
> > +	wifi
> >  	rm "$hiddenapfile"
> >  fi
> >
> >
Christian Dresel Oct. 31, 2017, 12:28 p.m.
Hi Adrian

On 31.10.2017 10:09, mail@adrianschmutzler.de wrote:
> Hallo Christian,
> 
> siehe unten.
> 
>> -----Original Message-----
>> From: Christian Dresel [mailto:fff@chrisi01.de]
>> Sent: Dienstag, 31. Oktober 2017 08:28
>> To: Adrian Schmutzler <freifunk@adrianschmutzler.de>; franken-
>> dev@freifunk.net
>> Subject: Re: [PATCH] fff-hoods: Remove gateway-up condition for hidden AP
>>
>> Hallo Adrian
>>
>> diesen Fall hatte ich tatsächlich auch schon mal, hab aber nie genau drauf
>> geguckt warum das passiert ist.
>>
>> Die Abfrage is GatewayAvailable hatte den Grund, das man das Timeouts der
>> Gateways mit abfangen möchte.
>>
>> Flag wird gesetzt wenn GW da ist
>> 5min später
>> Flag wird geprüft UND wenn GW immer noch da ist, ist es kein Timeout und
>> configap wird geöffnet
>>
>> du machst nun ein:
>> Flag wird gesetzt wenn GW da ist
>> 5min später
>> Flag wird geprüft und es wird auf jeden Fall configap geöffnet obwohl
>> vielleicht schon kein GW mehr da ist (weil es vllt. im ersten Fall schon
>> Richtung Timeout lief...)
> 
> Wenn kein Gateway mehr da ist, geht der Router direkt danach in den wXsta Modus und der configap wird ohnehin sofort wieder gelöscht!
> 
> Insofern ist das egal, wenn er ohne GW aufgemacht wird. Oder hast du was anderes gemeint?

ich glaube du hast recht... Bin jetzt am überlegen warum das damals
sinnvoll war. Haben wir da was geändert? Mir fällt auf jeden Fall da
gerade nichts grundlegendes ein. Wenn nicht würde ich gerne nochmal mit
RedDog drüber quasseln, der wollte den Abschnitt damals so haben und ich
hielt es damals auch für sinnvoll. Weiß jetzt nur wirklich nicht mehr
warum, weil eigentlich hast du recht. hmh...

mfg

Christian

> 
> Grüße
> 
> Adrian
> 
>>
>> mfg
>>
>> Christian
>>
>>
>> On 27.10.2017 20:16, Adrian Schmutzler wrote:
>>> Since the hidden AP clause is entered only once, there may be a case
>>> where the router has been set up and hiddenapfile created, but the
>>> gateway being temporarily unavailable. In this case, no configap would be
>> set up.
>>>
>>> This can be easily fixed by removing the gateway-available condition.
>>> In fact, removing this has no negative side effects, as if the gateway
>>> would be permanently off, the router would go into wXsta mode and
>>> configap would be destroyed again anyway.
>>>
>>> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
>>> ---
>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 35 ++++++++++----------
>> --
>>>  1 file changed, 16 insertions(+), 19 deletions(-)
>>>
>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> index 1eadc41..19a498a 100755
>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> @@ -38,26 +38,23 @@ hasInternet() {
>>>  # Hidden AP check
>>>
>>>  if [ -f "$hiddenapfile" ]; then
>>> -	if isGatewayAvailable ; then
>>> -
>>> -		for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-
>> 9]*\)=wifi-device,\1,p'); do
>>> -			channel=$(uci get "wireless.${radio}.channel")
>>> -			iface="configap2"
>>> -			if [ "$channel" -gt "14" ]; then
>>> -				iface="configap5"
>>> -			fi
>>> -			uci set network.${iface}=interface
>>> -			uci set network.${iface}.proto='static'
>>> -			uci set network.${iface}.ip6addr='fe80::1/64'
>>> -			if ! wifiAddAP "$radio" "config.franken.freifunk.net"
>> "$iface" "configap" "1"; then
>>> -				echo "Can't add Config interface on $radio."
>>> -				exit 1
>>> -			fi
>>> -		done
>>> -		uci commit network
>>> +	for radio in $(uci show wireless | sed -n 's,.*\.\([a-z0-9]*\)=wifi-
>> device,\1,p'); do
>>> +		channel=$(uci get "wireless.${radio}.channel")
>>> +		iface="configap2"
>>> +		if [ "$channel" -gt "14" ]; then
>>> +			iface="configap5"
>>> +		fi
>>> +		uci set network.${iface}=interface
>>> +		uci set network.${iface}.proto='static'
>>> +		uci set network.${iface}.ip6addr='fe80::1/64'
>>> +		if ! wifiAddAP "$radio" "config.franken.freifunk.net" "$iface"
>> "configap" "1"; then
>>> +			echo "Can't add Config interface on $radio."
>>> +			exit 1
>>> +		fi
>>> +	done
>>> +	uci commit network
>>>
>>> -		wifi
>>> -	fi
>>> +	wifi
>>>  	rm "$hiddenapfile"
>>>  fi
>>>
>>>
> 
>