From: Felix Fietkau <nbd@openwrt.org>
Date: Fri, 22 Dec 2006 08:06:07 +0000 (+0000)
Subject: move hostapd setup function to wireless-tools package, as it is driver independent
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=d68a9310fb1e305e5c65d516841a5a16bb5fc867;p=openwrt%2Fstaging%2Fwigyori.git

move hostapd setup function to wireless-tools package, as it is driver independent

SVN-Revision: 5890
---

diff --git a/package/madwifi/files/lib/wifi/madwifi.sh b/package/madwifi/files/lib/wifi/madwifi.sh
index dd030ba169..2a8465b9fd 100755
--- a/package/madwifi/files/lib/wifi/madwifi.sh
+++ b/package/madwifi/files/lib/wifi/madwifi.sh
@@ -45,71 +45,6 @@ scan_atheros() {
 	config_set "$device" vifs "${ap:+$ap }${adhoc:+$adhoc }${sta:+$sta }${wds:+$wds }"
 }
 
-hostapd_setup_vif() {
-	local vif="$1"
-	local driver="$2"
-	local hostapd_cfg=
-
-	# Examples:
-	# psk-mixed/tkip 	=> WPA1+2 PSK, TKIP
-	# wpa-psk2/tkip+aes	=> WPA2 PSK, CCMP+TKIP
-	# wpa2/tkip+aes 	=> WPA2 RADIUS, CCMP+TKIP
-	# ...
-
-	# TODO: move this parsing function somewhere generic, so that
-	# later it can be reused by drivers that don't use hostapd
-	
-	# crypto defaults: WPA2 vs WPA1
-	case "$enc" in
-		wpa2*|WPA2*|*PSK2*|*psk2*)
-			wpa=2
-			crypto="CCMP"
-		;;
-		*mixed*)
-			wpa=3
-			crypto="CCMP TKIP"
-		;;
-		*) 
-			wpa=1
-			crypto="TKIP"
-		;;
-	esac
-
-	# explicit override for crypto setting
-	case "$enc" in
-		*tkip+aes|*TKIP+AES|*tkip+ccmp|*TKIP+CCMP) crypto="CCMP TKIP";;
-		*tkip|*TKIP) crypto="TKIP";;
-		*aes|*AES|*ccmp|*CCMP) crypto="CCMP";;
-	esac
-	
-	# use crypto/auth settings for building the hostapd config
-	case "$enc" in
-		*psk*|*PSK*)
-			config_get psk "$vif" key
-			append hostapd_cfg "wpa_passphrase=$psk" "$N"
-		;;
-		*wpa*|*WPA*)
-		# FIXME: add wpa+radius here
-		;;
-		*)
-			return 0;
-		;;
-	esac
-	config_get ifname "$vif" ifname
-	config_get bridge "$vif" bridge
-	config_get ssid "$vif" ssid
-	cat > /var/run/hostapd-$ifname.conf <<EOF
-driver=$driver
-interface=$ifname
-${bridge:+bridge=$bridge}
-ssid=$ssid
-debug=0
-wpa=$wpa
-wpa_pairwise=$crypto
-$hostapd_cfg
-EOF
-	hostapd -B /var/run/hostapd-$ifname.conf
-}
 
 disable_atheros() (
 	local device="$1"
diff --git a/package/wireless-tools/Makefile b/package/wireless-tools/Makefile
index f07a406409..6c51126620 100644
--- a/package/wireless-tools/Makefile
+++ b/package/wireless-tools/Makefile
@@ -61,7 +61,9 @@ define Build/UninstallDev
 endef
 
 define Package/wireless-tools/install
-	$(INSTALL_DIR)  $(1)/usr/lib
+	$(INSTALL_DIR) $(1)/lib/wifi
+	$(INSTALL_DATA)  ./files/wifi.sh $(1)/lib/wifi/generic.sh
+	$(INSTALL_DIR) $(1)/usr/lib
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/libiw.so.28 $(1)/usr/lib/
 	$(INSTALL_DIR) $(1)/usr/sbin
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/iw{config,getid,list,priv,spy} $(1)/usr/sbin/
diff --git a/package/wireless-tools/files/wifi.sh b/package/wireless-tools/files/wifi.sh
new file mode 100644
index 0000000000..529462e6c9
--- /dev/null
+++ b/package/wireless-tools/files/wifi.sh
@@ -0,0 +1,66 @@
+hostapd_setup_vif() {
+	local vif="$1"
+	local driver="$2"
+	local hostapd_cfg=
+
+	# Examples:
+	# psk-mixed/tkip 	=> WPA1+2 PSK, TKIP
+	# wpa-psk2/tkip+aes	=> WPA2 PSK, CCMP+TKIP
+	# wpa2/tkip+aes 	=> WPA2 RADIUS, CCMP+TKIP
+	# ...
+
+	# TODO: move this parsing function somewhere generic, so that
+	# later it can be reused by drivers that don't use hostapd
+	
+	# crypto defaults: WPA2 vs WPA1
+	case "$enc" in
+		wpa2*|WPA2*|*PSK2*|*psk2*)
+			wpa=2
+			crypto="CCMP"
+		;;
+		*mixed*)
+			wpa=3
+			crypto="CCMP TKIP"
+		;;
+		*) 
+			wpa=1
+			crypto="TKIP"
+		;;
+	esac
+
+	# explicit override for crypto setting
+	case "$enc" in
+		*tkip+aes|*TKIP+AES|*tkip+ccmp|*TKIP+CCMP) crypto="CCMP TKIP";;
+		*tkip|*TKIP) crypto="TKIP";;
+		*aes|*AES|*ccmp|*CCMP) crypto="CCMP";;
+	esac
+	
+	# use crypto/auth settings for building the hostapd config
+	case "$enc" in
+		*psk*|*PSK*)
+			config_get psk "$vif" key
+			append hostapd_cfg "wpa_passphrase=$psk" "$N"
+		;;
+		*wpa*|*WPA*)
+		# FIXME: add wpa+radius here
+		;;
+		*)
+			return 0;
+		;;
+	esac
+	config_get ifname "$vif" ifname
+	config_get bridge "$vif" bridge
+	config_get ssid "$vif" ssid
+	cat > /var/run/hostapd-$ifname.conf <<EOF
+driver=$driver
+interface=$ifname
+${bridge:+bridge=$bridge}
+ssid=$ssid
+debug=0
+wpa=$wpa
+wpa_pairwise=$crypto
+$hostapd_cfg
+EOF
+	hostapd -B /var/run/hostapd-$ifname.conf
+}
+