summaryrefslogtreecommitdiffstats
path: root/sys/dev/ral
diff options
context:
space:
mode:
authordamien <damien@FreeBSD.org>2005-05-22 18:34:20 +0000
committerdamien <damien@FreeBSD.org>2005-05-22 18:34:20 +0000
commitc9d4996e8f5c6400e964cfeaf290921da6b4e12e (patch)
tree670a2565d0e4e3439099ec3702925947532d23f6 /sys/dev/ral
parentbdfc366afa6051872f04341fe032fb119d7f361a (diff)
downloadFreeBSD-src-c9d4996e8f5c6400e964cfeaf290921da6b4e12e.zip
FreeBSD-src-c9d4996e8f5c6400e964cfeaf290921da6b4e12e.tar.gz
Fix WPA (802.11i) support.
Approved by: silby (mentor)
Diffstat (limited to 'sys/dev/ral')
-rw-r--r--sys/dev/ral/if_ral.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/ral/if_ral.c b/sys/dev/ral/if_ral.c
index c17d86a..770c18d 100644
--- a/sys/dev/ral/if_ral.c
+++ b/sys/dev/ral/if_ral.c
@@ -90,6 +90,8 @@ static void ral_free_rx_ring(struct ral_softc *,
struct ral_rx_ring *);
static struct ieee80211_node *ral_node_alloc(
struct ieee80211_node_table *);
+static int ral_key_alloc(struct ieee80211com *,
+ const struct ieee80211_key *);
static int ral_media_change(struct ifnet *);
static void ral_next_scan(void *);
static void ral_iter_func(void *, struct ieee80211_node *);
@@ -456,6 +458,7 @@ ral_attach(device_t dev)
/* override state transition machine */
sc->sc_newstate = ic->ic_newstate;
ic->ic_newstate = ral_newstate;
+ ic->ic_crypto.cs_key_alloc = ral_key_alloc;
ieee80211_media_init(ic, ral_media_change, ieee80211_media_status);
bpfattach2(ifp, DLT_IEEE802_11_RADIO,
@@ -900,6 +903,15 @@ ral_node_alloc(struct ieee80211_node_table *nt)
}
static int
+ral_key_alloc(struct ieee80211com *ic, const struct ieee80211_key *k)
+{
+ if (k >= ic->ic_nw_keys && k < &ic->ic_nw_keys[IEEE80211_WEP_NKID])
+ return k - ic->ic_nw_keys;
+
+ return IEEE80211_KEYIX_NONE;
+}
+
+static int
ral_media_change(struct ifnet *ifp)
{
int error;
OpenPOWER on IntegriCloud