[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