[PATCH v2] fff-hoods: Use function for conditional wifiAddPhy
mail at adrianschmutzler.de
mail at adrianschmutzler.de
Fr Okt 6 00:20:50 CEST 2017
Tested on Uplink and Mesh.
Tested-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Adrian Schmutzler
> Sent: Freitag, 6. Oktober 2017 00:18
> To: franken-dev at 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 at 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 at freifunk.net
> http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Mehr Informationen über die Mailingliste franken-dev