[PATCH v9 2/4] Reconfigure fff-wireless for keyxchangev2

Adrian Schmutzler freifunk at adrianschmutzler.de
Do Sep 21 16:02:36 CEST 2017


From: Christian Dresel <fff at chrisi01.de>

Need more parameters in wifiAddAP to add hidden AP
Need new function wifiAddSta to add a station and download hoodfile

Signed-off-by: Christian Dresel <fff at chrisi01.de>

Update in v5:
 - wXSta to wXsta

Update in v6:
 - nothing

Update in v7:
 - nothing

Update in v8/v9:
 - rebase onto 20170918-beta
---
 .../files/etc/uci-defaults/60-fff-wireless         | 43 ---------------------
 .../fff-wireless/files/lib/functions/fff/wireless  | 44 +++++++++++++++++++---
 2 files changed, 39 insertions(+), 48 deletions(-)
 delete mode 100644 src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless

diff --git a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless b/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
deleted file mode 100644
index 8e207a4..0000000
--- a/src/packages/fff/fff-wireless/files/etc/uci-defaults/60-fff-wireless
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-# Copyright 2016 Tim Niemeyer
-# License GPLv3
-
-. /lib/functions/fff/wireless
-
-. /etc/community.cfg
-
-if ! wifiDelAll; then
-	echo "Can't delete current wifi setup"
-	exit 1
-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" "$BATMAN_CHANNEL")
-		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" "$BATMAN_CHANNEL_5GHZ")
-		if [ -z "$radio" ]; then
-			echo "Can't create radio for $phy"
-			exit 1
-		fi
-	fi
-
-	if ! wifiAddAP "$radio" "$ESSID_AP"; then
-		echo "Can't add AP interface on $radio."
-		exit 1
-	fi
-
-	if ! wifiAddAdHocMesh "$radio" "$ESSID_MESH" "$BSSID_MESH"; then
-		echo "Can't add AdHocMesh interface on $radio."
-		exit 1
-	fi
-done
-
-# vim: set noexpandtab:tabstop=4
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 76424be..f8a4c0b 100644
--- a/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
+++ b/src/packages/fff/fff-wireless/files/lib/functions/fff/wireless
@@ -91,28 +91,32 @@ wifiAddAdHocMesh() {
 }
 
 wifiAddAP() {
-	if [ $# -ne "2" ]
+	if [ $# -ne "5" ]
 	then
-		echo "Usage: wifiAddAP <radio> <essid>"
+		echo "Usage: wifiAddAP <radio> <essid> <network> <iface> <hidden>"
 		return 1
 	fi
 
 	local radio=$1
 	local essid=$2
+	local network=$3
+	local inface=$4
+	local hidden=$5
 
 	local channel=$(uci get "wireless.${radio}.channel")
-	local iface="w2ap"
+	local iface="w2'${inface}'"
 	if [ "$channel" -gt "14" ]; then
-		iface="w5ap"
+		iface="w5'${inface}'"
 	fi
 	uci batch <<-__EOF__
 		set wireless.${iface}='wifi-iface'
 		set wireless.${iface}.device='${radio}'
-		set wireless.${iface}.network='mesh'
+		set wireless.${iface}.network='${network}'
 		set wireless.${iface}.ifname='${iface}'
 		set wireless.${iface}.mode='ap'
 		set wireless.${iface}.ssid='${essid}'
 		set wireless.${iface}.encryption='none'
+		set wireless.${iface}.hidden='${hidden}'
 
 		commit wireless
 	__EOF__
@@ -120,4 +124,34 @@ wifiAddAP() {
 	echo "${iface}"
 }
 
+wifiAddSta() {
+	if [ $# -ne "3" ]
+	then
+		echo "Usage: wifiAddSta <radio> <essid> <network>"
+		return 1
+	fi
+
+	local radio=$1
+	local essid=$2
+	local network=$3
+
+	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}'
+		set wireless.${iface}.network='${network}'
+		set wireless.${iface}.ifname='${iface}'
+		set wireless.${iface}.mode='sta'
+		set wireless.${iface}.ssid='${essid}'
+
+		commit wireless
+	__EOF__
+	
+	echo "${iface}"
+}
+
 # vim: set noexpandtab:tabstop=4
-- 
2.7.4



Mehr Informationen über die Mailingliste franken-dev