aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/ibss_rsn.c
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2010-12-05 04:31:22 (GMT)
committerJouni Malinen <j@w1.fi>2010-12-05 04:31:22 (GMT)
commit89c38e32c7ed6edf7713370615fca83a36d37f9a (patch)
treeb1f8295839f235058c4c38324272090c6fa525cb /wpa_supplicant/ibss_rsn.c
parent18d2ba083b448f854069bca5a01050a2c4c4f915 (diff)
downloadhostap-89c38e32c7ed6edf7713370615fca83a36d37f9a.zip
hostap-89c38e32c7ed6edf7713370615fca83a36d37f9a.tar.gz
hostap-89c38e32c7ed6edf7713370615fca83a36d37f9a.tar.bz2
RSN IBSS: RX GTK configuration with nl80211
This add preliminary code for setting the per-STA RX GTK for RSN IBSS when nl80211 drivers. For some reason, this does not seem to fully work, but at least driver_nl80211.c is now aware of what kind of key is being set and the whatever is missing from making this key configuration go through should be specific to nl80211/cfg80211.
Diffstat (limited to 'wpa_supplicant/ibss_rsn.c')
-rw-r--r--wpa_supplicant/ibss_rsn.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/wpa_supplicant/ibss_rsn.c b/wpa_supplicant/ibss_rsn.c
index 0e33253..fa99c08 100644
--- a/wpa_supplicant/ibss_rsn.c
+++ b/wpa_supplicant/ibss_rsn.c
@@ -125,6 +125,8 @@ static int supp_set_key(void *ctx, enum wpa_alg alg,
}
}
+ if (is_broadcast_ether_addr(addr) && peer->addr)
+ addr = peer->addr;
return wpa_drv_set_key(peer->ibss_rsn->wpa_s, alg, addr, key_idx,
set_tx, seq, seq_len, key, key_len);
}
@@ -153,6 +155,12 @@ static void supp_cancel_auth_timeout(void *ctx)
}
+static void supp_deauthenticate(void * ctx, int reason_code)
+{
+ wpa_printf(MSG_DEBUG, "SUPP: %s (TODO)", __func__);
+}
+
+
int ibss_rsn_supp_init(struct ibss_rsn_peer *peer, const u8 *own_addr,
const u8 *psk)
{
@@ -170,6 +178,7 @@ int ibss_rsn_supp_init(struct ibss_rsn_peer *peer, const u8 *own_addr,
ctx->get_network_ctx = supp_get_network_ctx;
ctx->mlme_setprotection = supp_mlme_setprotection;
ctx->cancel_auth_timeout = supp_cancel_auth_timeout;
+ ctx->deauthenticate = supp_deauthenticate;
peer->supp = wpa_sm_init(ctx);
if (peer->supp == NULL) {
wpa_printf(MSG_DEBUG, "SUPP: wpa_sm_init() failed");