[PATCH 1/2] Move hoodfile acquisition into function

Alex Gutfried alexgutfried at gmail.com
Sa Jun 9 20:43:37 CEST 2018


So nachdem ich jetzt doch recht lange hier gegrübelt habe.
Doch, ja, ich denke ich habe den Patch verstanden und sieht für mich soweit
gut aus.

Wie geht das jetzt?
Ich mach jetzt einfach Mal.

Reviewed by Alex Gutzeit

Fabian Bläse <fabian at blaese.de> schrieb am Sa., 9. Juni 2018, 19:31:

> Anmerkung am Rand: Indentation ist kaputt, mach ich dann in der nächsten
> Version ganz..
>
> Gruß
> Fabian
>
> > On 9. Jun 2018, at 16:51, Fabian Bläse <fabian at blaese.de> 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/keyxchangev2data";
> then
> > +        return 0
> > +    elif wget -T15 -t5 -O "$file" "http://[fe80::1%w5sta]:2342/keyxchangev2data";
> 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/keyxchangev2data";
> 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.de/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%w2sta]: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]:2342/keyxchangev2data"
> -O "$hoodfile"
> > +                     getGatewayHoodfile "$hoodfile"
> >                       #UPLINK: Do nothing
> >               fi
> >       fi
> > --
> > 2.11.0
> >
>
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20180609/fe710978/attachment.html>


Mehr Informationen über die Mailingliste franken-dev