From f3c6c80cb82fbb81721721c6214b816169a1efa5 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Thu, 21 Jan 2010 20:52:17 +0000
Subject: [PATCH] broadcom-wl: implement wepauth in wlc and support it in
 broadcom.sh, allows switching between open and shared authentication

SVN-Revision: 19256
---
 package/broadcom-wl/files/lib/wifi/broadcom.sh | 6 +++++-
 package/broadcom-wl/src/wlc/wlc.c              | 7 +++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/package/broadcom-wl/files/lib/wifi/broadcom.sh b/package/broadcom-wl/files/lib/wifi/broadcom.sh
index f5d15f841d..94f220e0a1 100644
--- a/package/broadcom-wl/files/lib/wifi/broadcom.sh
+++ b/package/broadcom-wl/files/lib/wifi/broadcom.sh
@@ -181,11 +181,15 @@ enable_broadcom() {
 		nasopts=
 		config_get enc "$vif" encryption
 		case "$enc" in
-			WEP|wep)
+			*WEP*|*wep*)
 				wsec_r=1
 				wsec=1
 				defkey=1
 				config_get key "$vif" key
+				case "$enc" in
+					*shared*) append vif_do_up "wepauth 1" "$N";;
+					*) append vif_do_up "wepauth 0" "$N";;
+				esac
 				case "$key" in
 					[1234])
 						defkey="$key"
diff --git a/package/broadcom-wl/src/wlc/wlc.c b/package/broadcom-wl/src/wlc/wlc.c
index 3f3130de87..747b3d5bb9 100644
--- a/package/broadcom-wl/src/wlc/wlc.c
+++ b/package/broadcom-wl/src/wlc/wlc.c
@@ -663,6 +663,13 @@ static const struct wlc_call wlc_calls[] = {
 		.handler = wlc_wsec_key,
 		.desc = "Set/Remove WEP keys"
 	},
+	{
+		.name = "wepauth",
+		.param = INT,
+		.handler = wlc_ioctl,
+		.data.num = ((WLC_GET_AUTH << 16) | WLC_SET_AUTH),
+		.desc = "WEP authentication type. 0 = OpenSystem, 1 = SharedKey"
+	},
 	{
 		.name = "wsec_restrict",
 		.param = INT,
-- 
GitLab