Message ID | 20180612190701.30651-1-fabian@blaese.de |
---|---|
State | Accepted |
Headers | show |
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..4efaa66 --- /dev/null +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile @@ -0,0 +1,92 @@ +. /usr/share/libubox/jshn.sh +. /lib/functions/fff/wireless + +getWirelessHoodfile() { + if [ $# != 1 ]; then + echo "Usage: getWirelessHoodfile <target-file>" + 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 <target-file>" + 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 + lat=$(uci -q get fff.system.latitude) + long=$(uci -q get fff.system.longitude) + elif [ $# == 3 ]; then + lat=$2 + long=$3 + else + echo "Usage: getKeyserverHoodfile <target-file> [<latitude> <longitude>]" + return 1 + fi + file=$1 + + echo "Getting hoodfile from Keyserver" + + if wget -T15 -t5 -O "$file" "http://keyserver.freifunk-franken.de/v2/?lat=$lat&long=$long"; then + return 0 + else + return 1 + fi +} diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood index e2c1fab..d06a62d 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 @@ -69,16 +70,14 @@ if [ -s "$hoodfilecopy" ] && isGatewayAvailable ; then fi fi -lat=$(uci -q get fff.system.latitude) -long=$(uci -q get fff.system.longitude) - if [ -s "$hoodlocal" ]; then hoodfile="$hoodlocal" echo "Use local hood file" 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 +98,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
Hallo, schön gelöst. Reviewed-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Fabian Bläse > Sent: Dienstag, 12. Juni 2018 21:07 > To: franken-dev@freifunk.net > Cc: Jan Kraus <mayosemmel@gmail.com>; Adrian Schmutzler > <freifunk@adrianschmutzler.de> > Subject: [PATCH v4 1/2] Move hoodfile acquisition into function > > Signed-off-by: Fabian Bläse <fabian@blaese.de> > Tested-by: Fabian Bläse <fabian@blaese.de> > --- > Apply after MacKnocker patchset! > > Changes in v2: > - Fix indentation > - Remove shebang > - Improve usage message > - Add failure return value to getKeyserverHoodfile if no file was received > > Changes in v3: > - Fix messed up v2 > > Changes in v4: > - remove 't' > - move coordinate aquisition into getKeyserver function > - add optional coordinate parameter in getKeyserver function > --- > .../fff-hoods/files/usr/lib/functions/fff/hoodfile | 92 > ++++++++++++++++++++++ > .../fff/fff-hoods/files/usr/sbin/configurehood | 41 ++-------- > 2 files changed, 97 insertions(+), 36 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..4efaa66 > --- /dev/null > +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > @@ -0,0 +1,92 @@ > +. /usr/share/libubox/jshn.sh > +. /lib/functions/fff/wireless > + > +getWirelessHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getWirelessHoodfile <target-file>" > + 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 <target-file>" > + 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 > + lat=$(uci -q get fff.system.latitude) > + long=$(uci -q get fff.system.longitude) > + elif [ $# == 3 ]; then > + lat=$2 > + long=$3 > + else > + echo "Usage: getKeyserverHoodfile <target-file> [<latitude> > <longitude>]" > + return 1 > + fi > + file=$1 > + > + echo "Getting hoodfile from Keyserver" > + > + if wget -T15 -t5 -O "$file" "http://keyserver.freifunk- > franken.de/v2/?lat=$lat&long=$long"; then > + return 0 > + else > + return 1 > + fi > +} > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > index e2c1fab..d06a62d 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 > @@ -69,16 +70,14 @@ if [ -s "$hoodfilecopy" ] && isGatewayAvailable ; then > fi > fi > > -lat=$(uci -q get fff.system.latitude) > -long=$(uci -q get fff.system.longitude) > - > if [ -s "$hoodlocal" ]; then > hoodfile="$hoodlocal" > echo "Use local hood file" > 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 > +98,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
Am Dienstag, den 12.06.2018, 21:07 +0200 schrieb Fabian Bläse: > Signed-off-by: Fabian Bläse <fabian@blaese.de> > Tested-by: Fabian Bläse <fabian@blaese.de> Reviewed-by: Tim Niemeyer <tim@tn-x.org> Tim > --- > Apply after MacKnocker patchset! > > Changes in v2: > - Fix indentation > - Remove shebang > - Improve usage message > - Add failure return value to getKeyserverHoodfile if no file was > received > > Changes in v3: > - Fix messed up v2 > > Changes in v4: > - remove 't' > - move coordinate aquisition into getKeyserver function > - add optional coordinate parameter in getKeyserver function > --- > .../fff-hoods/files/usr/lib/functions/fff/hoodfile | 92 > ++++++++++++++++++++++ > .../fff/fff-hoods/files/usr/sbin/configurehood | 41 ++-------- > 2 files changed, 97 insertions(+), 36 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..4efaa66 > --- /dev/null > +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > @@ -0,0 +1,92 @@ > +. /usr/share/libubox/jshn.sh > +. /lib/functions/fff/wireless > + > +getWirelessHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getWirelessHoodfile <target-file>" > + 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/key > xchangev2data"; then > + return 0 > + elif wget -T15 -t5 -O "$file" "http://[fe80::1%w5sta]:2342/k > eyxchangev2data"; then > + return 0 > + else > + return 1 > + fi > +} > + > +getGatewayHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getGatewayHoodfile <target-file>" > + return 1 > + fi > + file=$1 > + > + echo "Trying to get hoodfile from gateway..." > + > + if wget -T15 -t5 -O "$file" "http://[fe80::1%br-mesh]:2342/k > eyxchangev2data"; then > + return 0 > + else > + return 1 > + fi > +} > + > +getKeyserverHoodfile() { > + if [ $# == 1 ]; then > + lat=$(uci -q get fff.system.latitude) > + long=$(uci -q get fff.system.longitude) > + elif [ $# == 3 ]; then > + lat=$2 > + long=$3 > + else > + echo "Usage: getKeyserverHoodfile <target-file> > [<latitude> <longitude>]" > + return 1 > + fi > + file=$1 > + > + echo "Getting hoodfile from Keyserver" > + > + if wget -T15 -t5 -O "$file" "http://keyserver.freifunk-frank > en.de/v2/?lat=$lat&long=$long"; then > + return 0 > + else > + return 1 > + fi > +} > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > index e2c1fab..d06a62d 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 > @@ -69,16 +70,14 @@ if [ -s "$hoodfilecopy" ] && isGatewayAvailable ; > then > fi > fi > > -lat=$(uci -q get fff.system.latitude) > -long=$(uci -q get fff.system.longitude) > - > if [ -s "$hoodlocal" ]; then > hoodfile="$hoodlocal" > echo "Use local hood file" > 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 +98,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/k > eyxchangev2data" -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
Hi beide applied. Tim Am Dienstag, den 12.06.2018, 21:07 +0200 schrieb Fabian Bläse: > Signed-off-by: Fabian Bläse <fabian@blaese.de> > Tested-by: Fabian Bläse <fabian@blaese.de> > --- > Apply after MacKnocker patchset! > > Changes in v2: > - Fix indentation > - Remove shebang > - Improve usage message > - Add failure return value to getKeyserverHoodfile if no file was > received > > Changes in v3: > - Fix messed up v2 > > Changes in v4: > - remove 't' > - move coordinate aquisition into getKeyserver function > - add optional coordinate parameter in getKeyserver function > --- > .../fff-hoods/files/usr/lib/functions/fff/hoodfile | 92 > ++++++++++++++++++++++ > .../fff/fff-hoods/files/usr/sbin/configurehood | 41 ++-------- > 2 files changed, 97 insertions(+), 36 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..4efaa66 > --- /dev/null > +++ b/src/packages/fff/fff-hoods/files/usr/lib/functions/fff/hoodfile > @@ -0,0 +1,92 @@ > +. /usr/share/libubox/jshn.sh > +. /lib/functions/fff/wireless > + > +getWirelessHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getWirelessHoodfile <target-file>" > + 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/key > xchangev2data"; then > + return 0 > + elif wget -T15 -t5 -O "$file" "http://[fe80::1%w5sta]:2342/k > eyxchangev2data"; then > + return 0 > + else > + return 1 > + fi > +} > + > +getGatewayHoodfile() { > + if [ $# != 1 ]; then > + echo "Usage: getGatewayHoodfile <target-file>" > + return 1 > + fi > + file=$1 > + > + echo "Trying to get hoodfile from gateway..." > + > + if wget -T15 -t5 -O "$file" "http://[fe80::1%br-mesh]:2342/k > eyxchangev2data"; then > + return 0 > + else > + return 1 > + fi > +} > + > +getKeyserverHoodfile() { > + if [ $# == 1 ]; then > + lat=$(uci -q get fff.system.latitude) > + long=$(uci -q get fff.system.longitude) > + elif [ $# == 3 ]; then > + lat=$2 > + long=$3 > + else > + echo "Usage: getKeyserverHoodfile <target-file> > [<latitude> <longitude>]" > + return 1 > + fi > + file=$1 > + > + echo "Getting hoodfile from Keyserver" > + > + if wget -T15 -t5 -O "$file" "http://keyserver.freifunk-frank > en.de/v2/?lat=$lat&long=$long"; then > + return 0 > + else > + return 1 > + fi > +} > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood > index e2c1fab..d06a62d 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 > @@ -69,16 +70,14 @@ if [ -s "$hoodfilecopy" ] && isGatewayAvailable ; > then > fi > fi > > -lat=$(uci -q get fff.system.latitude) > -long=$(uci -q get fff.system.longitude) > - > if [ -s "$hoodlocal" ]; then > hoodfile="$hoodlocal" > echo "Use local hood file" > 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 +98,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/k > eyxchangev2data" -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