[PATCH v7] fff-hoods: Use channel provided by gateway

Adrian Schmutzler mail at adrianschmutzler.de
Mi Okt 25 17:57:56 CEST 2017


Hallo,

wie schon im Chat gesagt, wenn wir dann ein wlan-device deaktivieren, müssen wir überlegen, was das für Konsequenzen hat und wie wir die abfangen. Ich finde daher die untenstehende Lösung gut, da sie einfach ist und eigtl. keine Nachteile hat.

Da drauf kann dann gerne jemand in Ruhe einen Patch schreiben, der das dann ordentlich löst, aber das wäre in meinen Augen einiges an Arbeit und KEIN Kompatibilitätsbruch.

Grüße

Adrian

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Tim Niemeyer
> Sent: Mittwoch, 25. Oktober 2017 16:47
> To: Adrian Schmutzler <freifunk at adrianschmutzler.de>; franken-
> dev at freifunk.net
> Subject: Re: [PATCH v7] fff-hoods: Use channel provided by gateway
> 
> Hi
> 
> Am Freitag, den 20.10.2017, 00:36 +0200 schrieb Adrian Schmutzler:
> > Changes in v2:
> > - rebase due to conflict with 802.11s
> >
> > Changes in v3:
> > - Fix wrong variable name introduced in v2
> >
> > Changes in v4:
> > - Fixed comment
> > - Fixed channel comparison for wXsta
> >
> > Changes in v5:
> > - Make radio in wifiAddPhyCond local
> >
> > Changes in v6:
> > - Rebase
> >
> > Changes in v7:
> > - Check if channel set and default otherwise
> Das war noch nicht ausdiskutiert.. es gab Bestrebungen das wifi aus zu
> machen, wenn kein channel da ist. Ich würde mich auch der Meinung
> anschließen, kein wifi mit kaputtem json.
> 
> Tim
> 
> > - Remove obsolete channel variables at beginning of script
> >
> > Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> > Signed-off-by: Fabian Bläse <fabian at blaese.de>
> > ---
> >  .../fff/fff-hoods/files/usr/sbin/configurehood     | 25 +++++++++++++------
> ---
> >  .../fff-wireless/files/lib/functions/fff/wireless  | 17
> > +++++++--------
> >  2 files changed, 23 insertions(+), 19 deletions(-)
> >
> > diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > index 88f6f53..ac8cd54 100755
> > --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> > @@ -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,20 @@ 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
> >
> > +		[ -n "$chan2ghz" ] || chan2ghz="1"
> > +		[ -n "$chan5ghz" ] || chan5ghz="36"
> > +
> >  		echo "Setting hood name: $hood"
> >  		uci set "system. at system[0].hood=$hood"
> >
> > diff --git
> > a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > index 7e418c2..b1ff5a9 100644
> > --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> > @@ -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}'
> > --
> > 2.7.4
> >




Mehr Informationen über die Mailingliste franken-dev