From 521c79a9ed495e268c6c18e5a5f19f4bdf50dc6a Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Wed, 10 Mar 2010 08:34:53 +0100 Subject: [PATCH] Use wk_macaddr field of struct ieee80211_key to get WCID --- rt2860.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/rt2860.c b/rt2860.c index 3702f9f..45fe850 100644 --- a/rt2860.c +++ b/rt2860.c @@ -2117,15 +2117,10 @@ static int rt2860_vap_key_set(struct ieee80211vap *vap, ic = vap->iv_ic; ifp = ic->ic_ifp; sc = ifp->if_softc; - - if (vap->iv_opmode != IEEE80211_M_HOSTAP) - ni = vap->iv_bss; - else - ni = ieee80211_find_vap_node(&ic->ic_sta, vap, mac); - + ni = ieee80211_find_vap_node(&ic->ic_sta, vap, k->wk_macaddr); associd = (ni != NULL) ? ni->ni_associd : 0; - if ((vap->iv_opmode == IEEE80211_M_HOSTAP) && (ni != NULL)) + if (ni != NULL) ieee80211_free_node(ni); switch (k->wk_cipher->ic_cipher) @@ -2150,9 +2145,9 @@ static int rt2860_vap_key_set(struct ieee80211vap *vap, } RT2860_DPRINTF(sc, RT2860_DEBUG_KEY, - "%s: VAP key set: keyix=%d, keylen=%d, associd=0x%04x, mode=%d, group=%d\n", - device_get_nameunit(sc->dev), k->wk_keyix, k->wk_keylen, associd, mode, - (k->wk_flags & IEEE80211_KEY_GROUP) ? 1 : 0); + "%s: VAP key set: keyix=%d, keylen=%d, macaddr=%s, associd=0x%04x, mode=%d, group=%d\n", + device_get_nameunit(sc->dev), k->wk_keyix, k->wk_keylen, ether_sprintf(k->wk_macaddr), + associd, mode, (k->wk_flags & IEEE80211_KEY_GROUP) ? 1 : 0); if (!(k->wk_flags & IEEE80211_KEY_GROUP)) { @@ -2282,13 +2277,16 @@ static int rt2860_vap_key_delete(struct ieee80211vap *vap, ic = vap->iv_ic; ifp = ic->ic_ifp; sc = ifp->if_softc; - ni = vap->iv_bss; + ni = ieee80211_find_vap_node(&ic->ic_sta, vap, k->wk_macaddr); associd = (ni != NULL) ? ni->ni_associd : 0; + if (ni != NULL) + ieee80211_free_node(ni); + RT2860_DPRINTF(sc, RT2860_DEBUG_KEY, - "%s: VAP key delete: keyix=%d, keylen=%d, associd=0x%04x, group=%d\n", - device_get_nameunit(sc->dev), k->wk_keyix, k->wk_keylen, associd, - (k->wk_flags & IEEE80211_KEY_GROUP) ? 1 : 0); + "%s: VAP key delete: keyix=%d, keylen=%d, macaddr=%s, associd=0x%04x, group=%d\n", + device_get_nameunit(sc->dev), k->wk_keyix, k->wk_keylen, ether_sprintf(k->wk_macaddr), + associd, (k->wk_flags & IEEE80211_KEY_GROUP) ? 1 : 0); if (!(k->wk_flags & IEEE80211_KEY_GROUP)) { -- 2.11.4.GIT