2018-06-12 21:07:00 +02:00
|
|
|
. /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
|
|
|
|
|
2019-06-16 16:23:24 +02:00
|
|
|
# Set channel to auto, enable wXsta, disable other interfaces
|
|
|
|
for radio in $(wifiListRadio); do
|
|
|
|
uci set "wireless.${radio}.channel=auto"
|
|
|
|
|
|
|
|
freq="$(wifiGetFreq $radio)"
|
|
|
|
uci set wireless.w${freq}ap.disabled='1'
|
|
|
|
uci set wireless.w${freq}mesh.disabled='1'
|
|
|
|
uci set wireless.w${freq}configap.disabled='1'
|
|
|
|
uci set wireless.w${freq}sta.disabled='0'
|
2018-06-12 21:07:00 +02:00
|
|
|
done
|
|
|
|
|
2019-06-16 16:23:24 +02:00
|
|
|
uci commit wireless
|
|
|
|
reload_config
|
|
|
|
|
2018-06-12 21:07:00 +02:00
|
|
|
wifi
|
|
|
|
# wait a moment to start the interface
|
|
|
|
sleep 10;
|
|
|
|
|
2019-01-27 15:47:07 +01:00
|
|
|
if wget -T15 -O "$file" "http://[fe80::1%w2sta]:2342/keyxchangev2data"; then
|
2018-06-12 21:07:00 +02:00
|
|
|
return 0
|
2019-01-27 15:47:07 +01:00
|
|
|
elif wget -T15 -O "$file" "http://[fe80::1%w5sta]:2342/keyxchangev2data"; then
|
2018-06-12 21:07:00 +02:00
|
|
|
return 0
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2018-06-12 21:07:01 +02:00
|
|
|
getEthernetHoodfile() {
|
|
|
|
if [ $# != 1 ]; then
|
|
|
|
echo "Usage: getEthernetHoodfile <target-file>"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
file=$1
|
|
|
|
|
|
|
|
echo "Trying to get hoodfile from ethernet neighbor..."
|
|
|
|
|
|
|
|
if ! ethmesh_dev=$(uci -q get network.ethmesh.ifname); then
|
|
|
|
# no ethmesh interface
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
neighbor_addrs=$(ping6 -c2 ff02::1%"${ethmesh_dev}" | grep seq | grep DUP | cut -d " " -f4 | sed s/:$//g | sort -u)
|
|
|
|
|
|
|
|
for addr in $neighbor_addrs; do
|
2019-01-27 15:47:07 +01:00
|
|
|
wget -T2 -qO "$file" "http://[${addr}%${ethmesh_dev}]:2342/keyxchangev2data" && return 0
|
2018-06-12 21:07:01 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
# got no hoodfile
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
2018-06-12 21:07:00 +02:00
|
|
|
getGatewayHoodfile() {
|
|
|
|
if [ $# != 1 ]; then
|
|
|
|
echo "Usage: getGatewayHoodfile <target-file>"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
file=$1
|
|
|
|
|
|
|
|
echo "Trying to get hoodfile from gateway..."
|
|
|
|
|
2019-01-27 15:47:07 +01:00
|
|
|
if wget -T15 -O "$file" "http://[fe80::1%br-mesh]:2342/keyxchangev2data"; then
|
2018-06-12 21:07:00 +02:00
|
|
|
return 0
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
getKeyserverHoodfile() {
|
2018-07-26 19:22:22 +02:00
|
|
|
if [ $# = 1 ]; then
|
2018-06-12 21:07:00 +02:00
|
|
|
lat=$(uci -q get fff.system.latitude)
|
|
|
|
long=$(uci -q get fff.system.longitude)
|
2018-07-26 19:22:22 +02:00
|
|
|
elif [ $# = 3 ]; then
|
2018-06-12 21:07:00 +02:00
|
|
|
lat=$2
|
|
|
|
long=$3
|
|
|
|
else
|
|
|
|
echo "Usage: getKeyserverHoodfile <target-file> [<latitude> <longitude>]"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
file=$1
|
|
|
|
|
|
|
|
echo "Getting hoodfile from Keyserver"
|
|
|
|
|
2019-01-27 15:47:07 +01:00
|
|
|
if wget -T15 -O "$file" "http://keyserver.freifunk-franken.de/v2/?lat=$lat&long=$long"; then
|
2018-06-12 21:07:00 +02:00
|
|
|
return 0
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|