[v2] fff-hoods: Use function for conditional wifiAddPhy

Submitted by Adrian Schmutzler on Oct. 5, 2017, 10:17 p.m.

Details

Message ID 1507241877-21833-1-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler Oct. 5, 2017, 10:17 p.m.
Just a little tidying up.

Apply only after fff-hoods patchset!

Changes in v2:
 - Removed echos from function

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 .../fff/fff-hoods/files/usr/sbin/configurehood     | 39 ++++------------------
 .../fff-wireless/files/lib/functions/fff/wireless  | 23 +++++++++++++
 2 files changed, 30 insertions(+), 32 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
index ba9a193..8155111 100755
--- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
+++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
@@ -72,22 +72,10 @@  else
 		fi
 		#now we look for phy and add this
 		for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
-			if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
-				echo "$phy is 2.4 GHz"
-				radio="$(wifiAddPhy "$phy" "$chan2ghz")"
-				if [ -z "$radio" ]; then
-					echo "Can't create radio for $phy"
-					exit 1
-				fi
-			fi
-			if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
-				echo "$phy is 5 GHz"
-				radio="$(wifiAddPhy "$phy" "$chan5ghz")"
-				if [ -z "$radio" ]; then
-					echo "Can't create radio for $phy"
-					exit 1
-				fi
-			fi
+			radio="$(wifiAddPhyCond "$phy" "2" "$chan2ghz")"
+			radio5="$(wifiAddPhyCond "$phy" "5" "$chan5ghz")"
+			[ -n "$radio5" ] && radio="$radio5"
+
 			#and here we add the station
 			if ! wifiAddSta "$radio" "config.franken.freifunk.net" "configSta"; then
 				echo "Can't add Sta interface on $radio."
@@ -153,22 +141,9 @@  if [ -s /tmp/keyxchangev2data ]; then
 		fi
 
 		for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
-			if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
-				echo "$phy is 2.4 GHz"
-				radio="$(wifiAddPhy "$phy" "$chan2ghz")"
-				if [ -z "$radio" ]; then
-					echo "Can't create radio for $phy"
-					exit 1
-				fi
-			fi
-			if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
-				echo "$phy is 5 GHz"
-				radio="$(wifiAddPhy "$phy" "$chan5ghz")"
-				if [ -z "$radio" ]; then
-					echo "Can't create radio for $phy"
-					exit 1
-				fi
-			fi
+			radio="$(wifiAddPhyCond "$phy" "2" "$chan2ghz")"
+			radio5="$(wifiAddPhyCond "$phy" "5" "$chan5ghz")"
+			[ -n "$radio5" ] && radio="$radio5"
 
 			if ! wifiAddAP "$radio" "$essid" "mesh" "ap" "0"; then
 				echo "Can't add AP interface on $radio."
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 8ba9463..2c6dff8 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -50,6 +50,27 @@  wifiAddPhy() {
 	return 0
 }
 
+wifiAddPhyCond() {
+	if [ $# -ne "3" ]
+	then
+		return 1
+	fi
+
+	local phy=$1
+	local freq=$2
+	local channel=$3
+	
+	if iw phy "$phy" info | grep -q -m1 "${freq}... MHz"; then
+		radio="$(wifiAddPhy "$phy" "$channel")"
+		if [ -z "$radio" ]; then
+			return 1
+		fi
+	fi
+	
+	echo "$radio"
+	return 0 # also returns success if outermost if is false
+}
+
 wifiAddAdHocMesh() {
 	if [ $# -ne "3" ]
 	then
@@ -122,6 +143,7 @@  wifiAddAP() {
 	__EOF__
 
 	echo "${iface}"
+	return 0
 }
 
 wifiAddSta() {
@@ -152,6 +174,7 @@  wifiAddSta() {
 	__EOF__
 	
 	echo "${iface}"
+	return 0
 }
 
 # vim: set noexpandtab:tabstop=4

Comments

Adrian Schmutzler Oct. 5, 2017, 10:20 p.m.
Tested on Uplink and Mesh.

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf
> Of Adrian Schmutzler
> Sent: Freitag, 6. Oktober 2017 00:18
> To: franken-dev@freifunk.net
> Subject: [PATCH v2] fff-hoods: Use function for conditional wifiAddPhy
> 
> Just a little tidying up.
> 
> Apply only after fff-hoods patchset!
> 
> Changes in v2:
>  - Removed echos from function
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 39
++++------------------
>  .../fff-wireless/files/lib/functions/fff/wireless  | 23 +++++++++++++
>  2 files changed, 30 insertions(+), 32 deletions(-)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index ba9a193..8155111 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -72,22 +72,10 @@ else
>  		fi
>  		#now we look for phy and add this
>  		for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> -			if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
> -				echo "$phy is 2.4 GHz"
> -				radio="$(wifiAddPhy "$phy" "$chan2ghz")"
> -				if [ -z "$radio" ]; then
> -					echo "Can't create radio for $phy"
> -					exit 1
> -				fi
> -			fi
> -			if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
> -				echo "$phy is 5 GHz"
> -				radio="$(wifiAddPhy "$phy" "$chan5ghz")"
> -				if [ -z "$radio" ]; then
> -					echo "Can't create radio for $phy"
> -					exit 1
> -				fi
> -			fi
> +			radio="$(wifiAddPhyCond "$phy" "2" "$chan2ghz")"
> +			radio5="$(wifiAddPhyCond "$phy" "5" "$chan5ghz")"
> +			[ -n "$radio5" ] && radio="$radio5"
> +
>  			#and here we add the station
>  			if ! wifiAddSta "$radio"
"config.franken.freifunk.net"
> "configSta"; then
>  				echo "Can't add Sta interface on $radio."
> @@ -153,22 +141,9 @@ if [ -s /tmp/keyxchangev2data ]; then
>  		fi
> 
>  		for phy in $(iw phy | awk '/^Wiphy/{ print $2 }'); do
> -			if iw phy "$phy" info | grep -q -m1 "2... MHz"; then
> -				echo "$phy is 2.4 GHz"
> -				radio="$(wifiAddPhy "$phy" "$chan2ghz")"
> -				if [ -z "$radio" ]; then
> -					echo "Can't create radio for $phy"
> -					exit 1
> -				fi
> -			fi
> -			if iw phy "$phy" info | grep -q -m1 "5... MHz"; then
> -				echo "$phy is 5 GHz"
> -				radio="$(wifiAddPhy "$phy" "$chan5ghz")"
> -				if [ -z "$radio" ]; then
> -					echo "Can't create radio for $phy"
> -					exit 1
> -				fi
> -			fi
> +			radio="$(wifiAddPhyCond "$phy" "2" "$chan2ghz")"
> +			radio5="$(wifiAddPhyCond "$phy" "5" "$chan5ghz")"
> +			[ -n "$radio5" ] && radio="$radio5"
> 
>  			if ! wifiAddAP "$radio" "$essid" "mesh" "ap" "0";
then
>  				echo "Can't add AP interface on $radio."
> 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 8ba9463..2c6dff8 100644
> --- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> +++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
> @@ -50,6 +50,27 @@ wifiAddPhy() {
>  	return 0
>  }
> 
> +wifiAddPhyCond() {
> +	if [ $# -ne "3" ]
> +	then
> +		return 1
> +	fi
> +
> +	local phy=$1
> +	local freq=$2
> +	local channel=$3
> +
> +	if iw phy "$phy" info | grep -q -m1 "${freq}... MHz"; then
> +		radio="$(wifiAddPhy "$phy" "$channel")"
> +		if [ -z "$radio" ]; then
> +			return 1
> +		fi
> +	fi
> +
> +	echo "$radio"
> +	return 0 # also returns success if outermost if is false }
> +
>  wifiAddAdHocMesh() {
>  	if [ $# -ne "3" ]
>  	then
> @@ -122,6 +143,7 @@ wifiAddAP() {
>  	__EOF__
> 
>  	echo "${iface}"
> +	return 0
>  }
> 
>  wifiAddSta() {
> @@ -152,6 +174,7 @@ wifiAddSta() {
>  	__EOF__
> 
>  	echo "${iface}"
> +	return 0
>  }
> 
>  # vim: set noexpandtab:tabstop=4
> --
> 2.7.4
> 
> --
> franken-dev mailing list
> franken-dev@freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net