Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching full:peer

27 static void ibss_rsn_free(struct ibss_rsn_peer *peer)
29 wpa_auth_sta_deinit(peer->auth);
30 wpa_sm_deinit(peer->supp);
31 os_free(peer);
37 struct ibss_rsn_peer *peer = ctx;
38 peer->supp_state = state;
44 struct ibss_rsn_peer *peer = ctx;
45 return peer->supp_state;
52 struct ibss_rsn_peer *peer = ctx;
53 struct wpa_supplicant *wpa_s = peer->ibss_rsn->wpa_s;
97 struct ibss_rsn_peer *peer = ctx;
101 return wpa_sm_set_ap_rsn_ie(peer->supp,
115 struct ibss_rsn_peer *peer = ctx;
126 * initiated by the peer with highest MAC address is used.
128 if (os_memcmp(peer->ibss_rsn->wpa_s->own_addr, peer->addr,
136 addr = peer->addr;
137 return wpa_drv_set_key(peer->ibss_rsn->wpa_s, alg, addr, key_idx,
144 struct ibss_rsn_peer *peer = ctx;
145 return wpa_supplicant_get_ssid(peer->ibss_rsn->wpa_s);
171 int ibss_rsn_supp_init(struct ibss_rsn_peer *peer, const u8 *own_addr,
178 ctx->ctx = peer;
179 ctx->msg_ctx = peer->ibss_rsn->wpa_s;
190 peer->supp = wpa_sm_init(ctx);
191 if (peer->supp == NULL) {
196 wpa_sm_set_own_addr(peer->supp, own_addr);
197 wpa_sm_set_param(peer->supp, WPA_PARAM_RSN_ENABLED, 1);
198 wpa_sm_set_param(peer->supp, WPA_PARAM_PROTO, WPA_PROTO_RSN);
199 wpa_sm_set_param(peer->supp, WPA_PARAM_PAIRWISE, WPA_CIPHER_CCMP);
200 wpa_sm_set_param(peer->supp, WPA_PARAM_GROUP, WPA_CIPHER_CCMP);
201 wpa_sm_set_param(peer->supp, WPA_PARAM_KEY_MGMT, WPA_KEY_MGMT_PSK);
202 wpa_sm_set_pmk(peer->supp, psk, PMK_LEN);
204 peer->supp_ie_len = sizeof(peer->supp_ie);
205 if (wpa_sm_set_assoc_wpa_ie_default(peer->supp, peer->supp_ie,
206 &peer->supp_ie_len) < 0) {
212 wpa_sm_notify_assoc(peer->supp, peer->addr);
279 * initiated by the peer with highest MAC address is used.
298 struct ibss_rsn_peer *peer;
302 for (peer = ibss_rsn->peers; peer; peer = peer->next) {
303 if (peer->auth && cb(peer->auth, cb_ctx))
347 struct ibss_rsn_peer *peer)
349 peer->auth = wpa_auth_sta_init(ibss_rsn->auth_group, peer->addr);
350 if (peer->auth == NULL) {
355 /* TODO: get peer RSN IE with Probe Request */
356 if (wpa_validate_wpa_ie(ibss_rsn->auth_group, peer->auth,
367 if (wpa_auth_sm_event(peer->auth, WPA_ASSOC))
370 if (wpa_auth_sta_associated(ibss_rsn->auth_group, peer->auth))
379 struct ibss_rsn_peer *peer;
384 for (peer = ibss_rsn->peers; peer; peer = peer->next) {
385 if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0) {
387 "Supplicant for peer " MACSTR " already "
394 "Supplicant for peer " MACSTR, MAC2STR(addr));
396 peer = os_zalloc(sizeof(*peer));
397 if (peer == NULL)
400 peer->ibss_rsn = ibss_rsn;
401 os_memcpy(peer->addr, addr, ETH_ALEN);
403 if (ibss_rsn_supp_init(peer, ibss_rsn->wpa_s->own_addr, ibss_rsn->psk)
405 ibss_rsn_free(peer);
409 if (ibss_rsn_auth_init(ibss_rsn, peer) < 0) {
410 ibss_rsn_free(peer);
414 peer->next = ibss_rsn->peers;
415 ibss_rsn->peers = peer;
423 struct ibss_rsn_peer *peer, *prev;
431 peer = ibss_rsn->peers;
432 while (peer) {
433 prev = peer;
434 peer = peer->next;
436 ibss_rsn->peers = peer;
439 /* remove specific peer */
440 wpa_printf(MSG_DEBUG, "%s: Remove specific peer " MACSTR,
443 for (prev = NULL, peer = ibss_rsn->peers; peer != NULL;
444 prev = peer, peer = peer->next) {
445 if (os_memcmp(peermac, peer->addr, ETH_ALEN) == 0) {
447 ibss_rsn->peers = peer->next;
449 prev->next = peer->next;
450 ibss_rsn_free(peer);
452 "removed a specific peer",
481 struct ibss_rsn_peer *peer, *prev;
486 peer = ibss_rsn->peers;
487 while (peer) {
488 prev = peer;
489 peer = peer->next;
543 struct ibss_rsn_peer *peer,
559 wpa_sm_rx_eapol(peer->supp, peer->addr, tmp, len);
562 wpa_receive(ibss_rsn->auth_group, peer->auth, tmp, len);
573 struct ibss_rsn_peer *peer;
578 for (peer = ibss_rsn->peers; peer; peer = peer->next) {
579 if (os_memcmp(src_addr, peer->addr, ETH_ALEN) == 0)
580 return ibss_rsn_process_rx_eapol(ibss_rsn, peer,
586 * Create new IBSS peer based on an EAPOL message from the peer