forked from freifunk-franken/firmware
fff-hoods: Use channel provided by gateway
This prevents setup if a channel is missing (json defective) Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Signed-off-by: Fabian Bläse <fabian@blaese.de> Reviewed-by: Christian Dresel <fff@chrisi01.de> Reviewed-by: Robert Langhammer <rlanghammer@web.de>
This commit is contained in:
parent
3f9b71d901
commit
1b568d96a7
|
@ -28,9 +28,6 @@ hasInternet() {
|
|||
return 1
|
||||
}
|
||||
|
||||
chan2ghz="1"
|
||||
chan5ghz="36"
|
||||
|
||||
# Hidden AP check
|
||||
|
||||
if [ -f /tmp/hiddenapflag ]; then
|
||||
|
@ -78,12 +75,17 @@ else
|
|||
fi
|
||||
#now we look for phy and add this
|
||||
for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
|
||||
radio="$(wifiAddPhyCond "$phy" "2" "$chan2ghz")"
|
||||
radio5="$(wifiAddPhyCond "$phy" "5" "$chan5ghz")"
|
||||
[ -n "$radio5" ] && radio="$radio5"
|
||||
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"; then
|
||||
if ! wifiAddSta "$radio" "config.franken.freifunk.net" "configSta" "$staiface" ; then
|
||||
echo "Can't add Sta interface on $radio."
|
||||
exit 1
|
||||
else
|
||||
|
@ -128,17 +130,22 @@ if [ -s /tmp/keyxchangev2data ]; then
|
|||
json_get_var mesh_essid mesh_essid
|
||||
json_get_var essid essid
|
||||
json_get_var ntpip ntp_ip
|
||||
# i think the next things we don't active this in the first version! we can do it later
|
||||
#json_get_var channel2 channel2
|
||||
# Additional parameters may be activated in future versions
|
||||
json_get_var chan2ghz channel2
|
||||
#json_get_var mode2 mode2
|
||||
json_get_var mesh_type2 mesh_type2
|
||||
#json_get_var channel5 channel5
|
||||
json_get_var chan5ghz channel5
|
||||
#json_get_var mode5 mode5
|
||||
json_get_var mesh_type5 mesh_type5
|
||||
#json_get_var protocol protocol
|
||||
|
||||
json_select ".." # back to root
|
||||
|
||||
if ! ([ -n "$chan2ghz" ] && [ -n "$chan5ghz" ]) ; then
|
||||
# If channel is missing, do nothing
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Setting hood name: $hood"
|
||||
uci set "system.@system[0].hood=$hood"
|
||||
|
||||
|
|
|
@ -25,7 +25,10 @@ wifiAddPhy() {
|
|||
local channel=$2
|
||||
local radio="radio$(echo "$phy" | tr -d -C "0-9")"
|
||||
local hwmode="11g"
|
||||
if [ "$channel" -gt "14" ]; then
|
||||
if [ "$channel" = "auto5" ] ; then
|
||||
hwmode="11a"
|
||||
channel="auto"
|
||||
elif ( ! [ "$channel" = "auto" ] ) && [ "$channel" -gt "14" ]; then
|
||||
hwmode="11a"
|
||||
fi
|
||||
|
||||
|
@ -60,7 +63,7 @@ wifiAddPhyCond() {
|
|||
local freq=$2
|
||||
local channel=$3
|
||||
local radio=""
|
||||
|
||||
|
||||
if iw phy "$phy" info | grep -q -m1 "${freq}... MHz"; then
|
||||
radio="$(wifiAddPhy "$phy" "$channel")"
|
||||
if [ -z "$radio" ]; then
|
||||
|
@ -148,21 +151,17 @@ wifiAddAP() {
|
|||
}
|
||||
|
||||
wifiAddSta() {
|
||||
if [ $# -ne "3" ]
|
||||
if [ $# -ne "4" ]
|
||||
then
|
||||
echo "Usage: wifiAddSta <radio> <essid> <network>"
|
||||
echo "Usage: wifiAddSta <radio> <essid> <network> <iface>"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local radio=$1
|
||||
local essid=$2
|
||||
local network=$3
|
||||
local iface=$4
|
||||
|
||||
local channel=$(uci get "wireless.${radio}.channel")
|
||||
local iface="w2sta"
|
||||
if [ "$channel" -gt "14" ]; then
|
||||
iface="w5sta"
|
||||
fi
|
||||
uci batch <<-__EOF__
|
||||
set wireless.${iface}='wifi-iface'
|
||||
set wireless.${iface}.device='${radio}'
|
||||
|
|
Loading…
Reference in New Issue