Lines Matching defs:peer

24 	struct ibss_rsn_peer *peer;
26 for (peer = ibss_rsn->peers; peer; peer = peer->next)
27 if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0)
29 return peer;
33 static void ibss_rsn_free(struct ibss_rsn_peer *peer)
35 wpa_auth_sta_deinit(peer->auth);
36 wpa_sm_deinit(peer->supp);
37 os_free(peer);
43 struct ibss_rsn_peer *peer = ctx;
44 peer->supp_state = state;
50 struct ibss_rsn_peer *peer = ctx;
51 return peer->supp_state;
58 struct ibss_rsn_peer *peer = ctx;
59 struct wpa_supplicant *wpa_s = peer->ibss_rsn->wpa_s;
103 struct ibss_rsn_peer *peer = ctx;
107 return wpa_sm_set_ap_rsn_ie(peer->supp,
121 struct ibss_rsn_peer *peer = ctx;
132 * initiated by the peer with highest MAC address is used.
134 if (os_memcmp(peer->ibss_rsn->wpa_s->own_addr, peer->addr,
142 addr = peer->addr;
143 return wpa_drv_set_key(peer->ibss_rsn->wpa_s, alg, addr, key_idx,
150 struct ibss_rsn_peer *peer = ctx;
151 return wpa_supplicant_get_ssid(peer->ibss_rsn->wpa_s);
177 static int ibss_rsn_supp_init(struct ibss_rsn_peer *peer, const u8 *own_addr,
184 ctx->ctx = peer;
185 ctx->msg_ctx = peer->ibss_rsn->wpa_s;
196 peer->supp = wpa_sm_init(ctx);
197 if (peer->supp == NULL) {
202 wpa_sm_set_own_addr(peer->supp, own_addr);
203 wpa_sm_set_param(peer->supp, WPA_PARAM_RSN_ENABLED, 1);
204 wpa_sm_set_param(peer->supp, WPA_PARAM_PROTO, WPA_PROTO_RSN);
205 wpa_sm_set_param(peer->supp, WPA_PARAM_PAIRWISE, WPA_CIPHER_CCMP);
206 wpa_sm_set_param(peer->supp, WPA_PARAM_GROUP, WPA_CIPHER_CCMP);
207 wpa_sm_set_param(peer->supp, WPA_PARAM_KEY_MGMT, WPA_KEY_MGMT_PSK);
208 wpa_sm_set_pmk(peer->supp, psk, PMK_LEN);
210 peer->supp_ie_len = sizeof(peer->supp_ie);
211 if (wpa_sm_set_assoc_wpa_ie_default(peer->supp, peer->supp_ie,
212 &peer->supp_ie_len) < 0) {
218 wpa_sm_notify_assoc(peer->supp, peer->addr);
285 * initiated by the peer with highest MAC address is used.
304 struct ibss_rsn_peer *peer;
308 for (peer = ibss_rsn->peers; peer; peer = peer->next) {
309 if (peer->auth && cb(peer->auth, cb_ctx))
318 struct ibss_rsn_peer *peer, int authorized)
323 res = wpa_drv_sta_set_flags(ibss_rsn->wpa_s, peer->addr,
327 MAC2STR(peer->addr));
329 res = wpa_drv_sta_set_flags(ibss_rsn->wpa_s, peer->addr,
332 MAC2STR(peer->addr));
338 MAC2STR(peer->addr), errno);
347 struct ibss_rsn_peer *peer = ibss_rsn_get_peer(ibss_rsn, addr);
349 if (peer == NULL)
354 ibss_set_sta_authorized(ibss_rsn, peer, value);
403 struct ibss_rsn_peer *peer)
405 peer->auth = wpa_auth_sta_init(ibss_rsn->auth_group, peer->addr);
406 if (peer->auth == NULL) {
411 /* TODO: get peer RSN IE with Probe Request */
412 if (wpa_validate_wpa_ie(ibss_rsn->auth_group, peer->auth,
423 if (wpa_auth_sm_event(peer->auth, WPA_ASSOC))
426 if (wpa_auth_sta_associated(ibss_rsn->auth_group, peer->auth))
435 struct ibss_rsn_peer *peer;
442 "for peer " MACSTR " already running",
448 "Supplicant for peer " MACSTR, MAC2STR(addr));
450 peer = os_zalloc(sizeof(*peer));
451 if (peer == NULL)
454 peer->ibss_rsn = ibss_rsn;
455 os_memcpy(peer->addr, addr, ETH_ALEN);
457 if (ibss_rsn_supp_init(peer, ibss_rsn->wpa_s->own_addr, ibss_rsn->psk)
459 ibss_rsn_free(peer);
463 if (ibss_rsn_auth_init(ibss_rsn, peer) < 0) {
464 ibss_rsn_free(peer);
468 peer->next = ibss_rsn->peers;
469 ibss_rsn->peers = peer;
477 struct ibss_rsn_peer *peer, *prev;
485 peer = ibss_rsn->peers;
486 while (peer) {
487 prev = peer;
488 peer = peer->next;
490 ibss_rsn->peers = peer;
493 /* remove specific peer */
494 wpa_printf(MSG_DEBUG, "%s: Remove specific peer " MACSTR,
497 for (prev = NULL, peer = ibss_rsn->peers; peer != NULL;
498 prev = peer, peer = peer->next) {
499 if (os_memcmp(peermac, peer->addr, ETH_ALEN) == 0) {
501 ibss_rsn->peers = peer->next;
503 prev->next = peer->next;
504 ibss_rsn_free(peer);
506 "removed a specific peer",
535 struct ibss_rsn_peer *peer, *prev;
540 peer = ibss_rsn->peers;
541 while (peer) {
542 prev = peer;
543 peer = peer->next;
597 struct ibss_rsn_peer *peer,
613 wpa_sm_rx_eapol(peer->supp, peer->addr, tmp, len);
616 wpa_receive(ibss_rsn->auth_group, peer->auth, tmp, len);
627 struct ibss_rsn_peer *peer;
632 peer = ibss_rsn_get_peer(ibss_rsn, src_addr);
633 if (peer)
634 return ibss_rsn_process_rx_eapol(ibss_rsn, peer, buf, len);
638 * Create new IBSS peer based on an EAPOL message from the peer