[PATCH 1/2] Move hoodfile acquisition into function

Tim Niemeyer tim at tn-x.org
So Jun 10 11:23:27 CEST 2018


Am Sonntag, den 10.06.2018, 09:07 +0200 schrieb Christian Dresel:
> hi
> 
> ich glaub es wurde gestern schon angesprochen, warum jetzt
> /usr/lib...
> und nicht /lib? Mir persönlich soll es aber egal sein daher:
Ja, das sollte schon einheitlich sein. Das wäre die erste "Lib", wo das
nicht unter /lib/functions/fff liegen würde.

Weiter wäre es gut, wenn gesagt wird, ob ein Patch zuvor applied werden
müsste, damit der hier drauf geht. Mir ist aufgefallen, dass
reload_config bei dir scheinbar bereits integriert ist.

Tim

> Reviewed-by: Christian Dresel <fff at chrisi01.de>
> 
> mfg
> 
> Christian
> 
> On 09.06.2018 16:51, Fabian Bläse wrote:
> > Signed-off-by: Fabian Bläse <fabian at blaese.de>
> > ---
> >  .../fff-hoods/files/usr/lib/functions/fff/hoodfile | 87
> > ++++++++++++++++++++++
> >  .../fff/fff-hoods/files/usr/sbin/configurehood     | 38 ++--------
> >  2 files changed, 92 insertions(+), 33 deletions(-)
> >  create mode 100644 src/packages/fff/fff-
> > hoods/files/usr/lib/functions/fff/hoodfile
> > 
> > diff --git a/src/packages/fff/fff-
> > hoods/files/usr/lib/functions/fff/hoodfile b/src/packages/fff/fff-
> > hoods/files/usr/lib/functions/fff/hoodfile
> > new file mode 100644
> > index 0000000..62487f9
> > --- /dev/null
> > +++ b/src/packages/fff/fff-
> > hoods/files/usr/lib/functions/fff/hoodfile
> > @@ -0,0 +1,87 @@
> > +#!/bin/sh
> > +
> > +. /usr/share/libubox/jshn.sh
> > +. /lib/functions/fff/wireless
> > +
> > +getWirelessHoodfile() {
> > +    if [ $# != 1 ]
> > +	then
> > +		echo "Usage: getWirelessHoodfile <download-
> > location>"
> > +		return 1
> > +	fi
> > +    file=$1
> > +
> > +    echo "Trying to get hoodfile from wireless neighbor..."
> > +    echo "All wireless interfaces will be disabled temporarily!"
> > +
> > +    # only change temporarily
> > +
> > +    if ! wifiDelIface; then
> > +        echo "Can't delete current wifi setup"
> > +        exit 1
> > +    fi
> > +    #now we look for phy and add this
> > +    for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> > +        radio="$(wifiAddPhyCond "$phy" "2" "auto")"
> > +        radio5="$(wifiAddPhyCond "$phy" "5" "auto5")"
> > +        if [ -n "$radio5" ] ; then
> > +            radio="$radio5"
> > +            staiface="w5sta"
> > +        else
> > +            staiface="w2sta"
> > +        fi
> > +
> > +        #and here we add the station
> > +        if ! wifiAddSta "$radio" "config.franken.freifunk.net"
> > "configSta" "$staiface" ; then
> > +            echo "Can't add Sta interface on $radio."
> > +            exit 1
> > +        else
> > +            uci -q set network.configSta=interface
> > +            uci -q set network.configSta.proto='static'
> > +            uci -q commit network
> > +            reload_config
> > +        fi
> > +    done
> > +
> > +    wifi
> > +    # wait a moment to start the interface
> > +    sleep 10;
> > +
> > +    if wget -T15 -t5 -O "$file" "http://[fe80::1%w2sta]:2342/keyxc
> > hangev2data"; then
> > +        return 0
> > +    elif wget -T15 -t5 -O "$file" "http://[fe80::1%w5sta]:2342/key
> > xchangev2data"; then
> > +        return 0
> > +    else
> > +        return 1
> > +    fi
> > +}
> > +
> > +getGatewayHoodfile() {
> > +    if [ $# != 1 ]
> > +	then
> > +		echo "Usage: getGatewayHoodfile <download-
> > location>"
> > +		return 1
> > +	fi
> > +    file=$1
> > +
> > +    echo "Trying to get hoodfile from gateway..."
> > +
> > +    if wget -T15 -t5 -O "$file" "http://[fe80::1%br-mesh]:2342/key
> > xchangev2data"; then
> > +        return 0
> > +    else
> > +        return 1
> > +    fi
> > +}
> > +
> > +getKeyserverHoodfile() {
> > +    if [ $# != 1 ]
> > +	then
> > +		echo "Usage: getKeyserverHoodfile <download-
> > location>"
> > +		return 1
> > +	fi
> > +    file=$1
> > +
> > +    echo "Getting hoodfile from Keyserver"
> > +
> > +    wget -T15 -t5 -O "$file" "http://keyserver.freifunk-franken.de
> > /v2/?lat=$lat&long=$long"
> > +}
> > diff --git a/src/packages/fff/fff-
> > hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-
> > hoods/files/usr/sbin/configurehood
> > index e2c1fab..aee20e5 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -5,6 +5,7 @@
> >  . /lib/functions/fff/network
> >  . /lib/functions/fff/wireless
> >  . /lib/functions/fff/timeserver
> > +. /usr/lib/functions/fff/hoodfile
> >  
> >  sectorlocal=/etc/sectorfile
> >  sectortmp=/tmp/sectorfile
> > @@ -78,7 +79,8 @@ if [ -s "$hoodlocal" ]; then
> >  else
> >  	# if we have Internet, we download the Hoodfile from the
> > keyxchangev2
> >  	if hasInternet ; then
> > -		wget -T15 -t5 "http://keyserver.freifunk-franken.d
> > e/v2/?lat=$lat&long=$long" -O "$hoodfile"
> > +		getKeyserverHoodfile "$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
> > @@ -99,45 +101,15 @@ else
> >  		
> >  			sleep 30 # Wait for the config AP, which
> > may be created at the same time as this script has started
> >  
> > -			if ! wifiDelIface; then
> > -				echo "Can't delete current wifi
> > setup"
> > -				exit 1
> > -			fi
> > -			#now we look for phy and add this
> > -			for phy in $(iw phy | awk '/^Wiphy/{ print
> > $2 }'); do
> > -				radio="$(wifiAddPhyCond "$phy" "2"
> > "auto")"
> > -				radio5="$(wifiAddPhyCond "$phy"
> > "5" "auto5")"
> > -				if [ -n "$radio5" ] ; then
> > -					radio="$radio5"
> > -					staiface="w5sta"
> > -				else
> > -					staiface="w2sta"
> > -				fi
> > +			getWirelessHoodfile "$hoodfile"
> >  
> > -				#and here we add the station
> > -				if ! wifiAddSta "$radio"
> > "config.franken.freifunk.net" "configSta" "$staiface" ; then
> > -					echo "Can't add Sta
> > interface on $radio."
> > -					exit 1
> > -				else
> > -					uci -q set
> > network.configSta=interface
> > -					uci -q set
> > network.configSta.proto='static'
> > -					uci -q commit network
> > -					reload_config
> > -				fi
> > -			done
> > -		
> > -			wifi
> > -			# 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 "$hoodfile" || wget -T15 -t5
> > "http://[fe80::1%w5sta]:2342/keyxchangev2data" -O "$hoodfile"
> >  			#UPLINK: Set up uplink data on first
> > contact:
> >  			if [ -s /tmp/keyxchangev2data ]; then
> >  				wget -T15 -t5 "http://[fe80::1%w2s
> > ta]:2342/sectorfile" -O "$sectortmp" || wget -T15 -t5
> > "http://[fe80::1%w5sta]: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]:23
> > 42/keyxchangev2data" -O "$hoodfile"
> > +			getGatewayHoodfile "$hoodfile"
> >  			#UPLINK: Do nothing
> >  		fi
> >  	fi
> > 
> 
> 
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 488 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180610/18d39698/attachment.sig>


Mehr Informationen über die Mailingliste franken-dev