summaryrefslogtreecommitdiff
path: root/sys/dev/ic/if_wi.c
diff options
context:
space:
mode:
authorTodd C. Miller <millert@cvs.openbsd.org>2004-03-18 16:16:12 +0000
committerTodd C. Miller <millert@cvs.openbsd.org>2004-03-18 16:16:12 +0000
commitf1f0c6610d14c998b6e064e8a08ca543fd450587 (patch)
treeef2f1f07f3ccc02837bc88fe477176a42dba1772 /sys/dev/ic/if_wi.c
parent28aee1cec5bdc9101c025a14cdc85fa36bfa954a (diff)
Starting with Prism firmware version 1.6.3, HostAP supports an
enhanced security mode whereby the SSID can be hidden from snoopers. Ok deraadt@
Diffstat (limited to 'sys/dev/ic/if_wi.c')
-rw-r--r--sys/dev/ic/if_wi.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/dev/ic/if_wi.c b/sys/dev/ic/if_wi.c
index fbf0ff0097b..4e62eb80a5d 100644
--- a/sys/dev/ic/if_wi.c
+++ b/sys/dev/ic/if_wi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_wi.c,v 1.107 2004/03/15 21:50:26 millert Exp $ */
+/* $OpenBSD: if_wi.c,v 1.108 2004/03/18 16:16:10 millert Exp $ */
/*
* Copyright (c) 1997, 1998, 1999
@@ -126,7 +126,7 @@ u_int32_t widebug = WIDEBUG;
#if !defined(lint) && !defined(__OpenBSD__)
static const char rcsid[] =
- "$OpenBSD: if_wi.c,v 1.107 2004/03/15 21:50:26 millert Exp $";
+ "$OpenBSD: if_wi.c,v 1.108 2004/03/18 16:16:10 millert Exp $";
#endif /* lint */
#ifdef foo
@@ -301,6 +301,8 @@ wi_attach(struct wi_softc *sc, struct wi_funcs *funcs)
sc->wi_flags |= WI_FLAGS_HAS_IBSS;
sc->wi_flags |= WI_FLAGS_HAS_CREATE_IBSS;
}
+ if (sc->sc_sta_firmware_ver >= 10603)
+ sc->wi_flags |= WI_FLAGS_HAS_ENH_SECURITY;
sc->wi_ibss_port = htole16(0);
break;
case WI_SYMBOL:
@@ -1516,6 +1518,9 @@ wi_setdef(sc, wreq)
case WI_RID_SYMBOL_DIVERSITY:
sc->wi_diversity = letoh16(wreq->wi_val[0]);
break;
+ case WI_RID_CNF_ENH_SECURITY:
+ sc->wi_enh_security = letoh16(wreq->wi_val[0]);
+ break;
case WI_RID_ENCRYPTION:
sc->wi_use_wep = letoh16(wreq->wi_val[0]);
break;
@@ -1751,6 +1756,7 @@ wi_ioctl(ifp, command, data)
case WI_RID_CREATE_IBSS:
case WI_RID_MICROWAVE_OVEN:
case WI_RID_OWN_SSID:
+ case WI_RID_CNF_ENH_SECURITY:
/*
* Check for features that may not be supported
* (must be just before default case).
@@ -1763,6 +1769,8 @@ wi_ioctl(ifp, command, data)
!(sc->wi_flags & WI_FLAGS_HAS_CREATE_IBSS)) ||
(wreq.wi_type == WI_RID_MICROWAVE_OVEN &&
!(sc->wi_flags & WI_FLAGS_HAS_MOR)) ||
+ (wreq.wi_type == WI_RID_CNF_ENH_SECURITY &&
+ !(sc->wi_flags & WI_FLAGS_HAS_ENH_SECURITY)) ||
(wreq.wi_type == WI_RID_OWN_SSID &&
wreq.wi_len != 0))
break;
@@ -1905,6 +1913,10 @@ wi_init_io(sc)
/* Power Management Max Sleep */
WI_SETVAL(WI_RID_MAX_SLEEP, sc->wi_max_sleep);
+ /* Set Enhanced Security if supported. */
+ if (sc->wi_flags & WI_FLAGS_HAS_ENH_SECURITY)
+ WI_SETVAL(WI_RID_CNF_ENH_SECURITY, sc->wi_enh_security);
+
/* Set Roaming Mode unless this is a Symbol card. */
if (sc->wi_flags & WI_FLAGS_HAS_ROAMING)
WI_SETVAL(WI_RID_ROAMING_MODE, sc->wi_roaming);