[1/3] fff-hoods: Remove hardcoded IPv4 address and foreign domain

Submitted by Fabian Blaese on May 6, 2020, 2:48 p.m.

Details

Message ID 20200506144803.590699-1-fabian@blaese.de
State Accepted
Headers show

Commit Message

Fabian Blaese May 6, 2020, 2:48 p.m.
IPv4 is not a requirement for VPN nodes. However, a working DNS
is a requirement for nodes connecting via VPN. Therefore the
hardcoded IPv4 address is removed from the internet test.

To improve readability, a loop is used instead of having a seperate
ping command for each host. The ping utility built into our firmware
supports both IPv4 and IPv6.

Signed-off-by: Fabian Bläse <fabian@blaese.de>
---
 .../fff/fff-hoods/files/usr/sbin/configurehood       | 12 ++++--------
 1 file changed, 4 insertions(+), 8 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 8c7bb3d..3b92cbc 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -31,14 +31,10 @@  isGatewayAvailable() {
 
 # Ping test
 hasInternet() {
-	test_ipv4_host1="keyserver.freifunk-franken.de" # Freifunk-Franken keyserver
-	test_ipv4_host2="8.8.8.8"        # Google DNS
-	test_ipv6_host1="heise.de"       # heise Zeitschriftenverlag
-	if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
-		ping -w5 -c3 "$test_ipv4_host2" &>/dev/null ||
-		ping6 -w5 -c3 "$test_ipv6_host1" &>/dev/null ; then
-		return 0
-	fi
+	internetAddresses="keyserver.freifunk-franken.de heise.de"
+	for addr in $internetAddresses; do
+		ping -w5 -c3 "$addr" &>/dev/null && return 0
+	done
 	return 1
 }
 

Comments

Robert Langhammer June 17, 2020, 6:32 a.m.
Hi Fabian,

ja, kann man machen.

Reviewed-by: Robert Langhammer <rlanghammer@web.de>

Mit Patch 2/3 bleibt nur noch ein Test für den vpn-Start übrig. Da wäre
zu überlegen, ob man das wirklich davon abhängig macht, ob man den keyX
oder heise.de pingen kann. Dann könnte der Test ganz weg. Aber da kann
man sich Gedanken machen, wenn irgendwann mal ein weiteres Protokoll
dazu kommt.


Am 06.05.20 um 16:48 schrieb Fabian Bläse:
> IPv4 is not a requirement for VPN nodes. However, a working DNS
> is a requirement for nodes connecting via VPN. Therefore the
> hardcoded IPv4 address is removed from the internet test.
>
> To improve readability, a loop is used instead of having a seperate
> ping command for each host. The ping utility built into our firmware
> supports both IPv4 and IPv6.
>
> Signed-off-by: Fabian Bläse <fabian@blaese.de>
> ---
>  .../fff/fff-hoods/files/usr/sbin/configurehood       | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
>
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 8c7bb3d..3b92cbc 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -31,14 +31,10 @@ isGatewayAvailable() {
>  
>  # Ping test
>  hasInternet() {
> -	test_ipv4_host1="keyserver.freifunk-franken.de" # Freifunk-Franken keyserver
> -	test_ipv4_host2="8.8.8.8"        # Google DNS
> -	test_ipv6_host1="heise.de"       # heise Zeitschriftenverlag
> -	if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
> -		ping -w5 -c3 "$test_ipv4_host2" &>/dev/null ||
> -		ping6 -w5 -c3 "$test_ipv6_host1" &>/dev/null ; then
> -		return 0
> -	fi
> +	internetAddresses="keyserver.freifunk-franken.de heise.de"
> +	for addr in $internetAddresses; do
> +		ping -w5 -c3 "$addr" &>/dev/null && return 0
> +	done
>  	return 1
>  }
>
Adrian Schmutzler June 18, 2020, 10:09 a.m.
Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Wird in 5 Minuten gemergt (wieder nur 1/3), ich werden das PKG_RELEASE noch erhöhen.

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Robert Langhammer
> Sent: Mittwoch, 17. Juni 2020 08:33
> To: franken-dev@freifunk.net
> Subject: Re: [PATCH 1/3] fff-hoods: Remove hardcoded IPv4 address and
> foreign domain
> 
> Hi Fabian,
> 
> ja, kann man machen.
> 
> Reviewed-by: Robert Langhammer <rlanghammer@web.de>
> 
> Mit Patch 2/3 bleibt nur noch ein Test für den vpn-Start übrig. Da wäre zu
> überlegen, ob man das wirklich davon abhängig macht, ob man den keyX
> oder heise.de pingen kann. Dann könnte der Test ganz weg. Aber da kann
> man sich Gedanken machen, wenn irgendwann mal ein weiteres Protokoll
> dazu kommt.
> 
> 
> Am 06.05.20 um 16:48 schrieb Fabian Bläse:
> > IPv4 is not a requirement for VPN nodes. However, a working DNS is a
> > requirement for nodes connecting via VPN. Therefore the hardcoded IPv4
> > address is removed from the internet test.
> >
> > To improve readability, a loop is used instead of having a seperate
> > ping command for each host. The ping utility built into our firmware
> > supports both IPv4 and IPv6.
> >
> > Signed-off-by: Fabian Bläse <fabian@blaese.de>
> > ---
> >  .../fff/fff-hoods/files/usr/sbin/configurehood       | 12 ++++--------
> >  1 file changed, 4 insertions(+), 8 deletions(-)
> >
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index 8c7bb3d..3b92cbc 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -31,14 +31,10 @@ isGatewayAvailable() {
> >
> >  # Ping test
> >  hasInternet() {
> > -	test_ipv4_host1="keyserver.freifunk-franken.de" # Freifunk-
> Franken keyserver
> > -	test_ipv4_host2="8.8.8.8"        # Google DNS
> > -	test_ipv6_host1="heise.de"       # heise Zeitschriftenverlag
> > -	if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
> > -		ping -w5 -c3 "$test_ipv4_host2" &>/dev/null ||
> > -		ping6 -w5 -c3 "$test_ipv6_host1" &>/dev/null ; then
> > -		return 0
> > -	fi
> > +	internetAddresses="keyserver.freifunk-franken.de heise.de"
> > +	for addr in $internetAddresses; do
> > +		ping -w5 -c3 "$addr" &>/dev/null && return 0
> > +	done
> >  	return 1
> >  }
> >