Lines Matching defs:wpa_s

123 	struct wpa_supplicant *wpa_s = eloop_ctx;
126 if (wpa_s->conf == NULL)
129 if (wpa_s->wpa_state == WPA_DISCONNECTED)
130 wpa_s->wpa_state = WPA_SCANNING;
132 ssid = wpa_s->conf->ssid;
140 if (wpa_s->driver->scan(wpa_s->handle, wpa_s->linkid)) {
146 wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec)
150 (void) eloop_cancel_timeout(wpa_supplicant_scan, wpa_s, NULL);
152 wpa_s, NULL);
156 wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s)
159 eloop_cancel_timeout(wpa_supplicant_scan, wpa_s, NULL);
166 struct wpa_supplicant *wpa_s = eloop_ctx;
169 MAC2STR(wpa_s->bssid));
171 wpa_s->reassociate = 1;
172 wpa_supplicant_req_scan(wpa_s, 0, 0);
176 wpa_supplicant_req_auth_timeout(struct wpa_supplicant *wpa_s,
181 eloop_cancel_timeout(wpa_supplicant_timeout, wpa_s, NULL);
183 wpa_s, NULL);
187 wpa_supplicant_cancel_auth_timeout(struct wpa_supplicant *wpa_s)
190 eloop_cancel_timeout(wpa_supplicant_timeout, wpa_s, NULL);
194 wpa_supplicant_cleanup(struct wpa_supplicant *wpa_s)
196 l2_packet_deinit(wpa_s->l2);
197 wpa_s->l2 = NULL;
199 if (wpa_s->conf != NULL) {
200 wpa_config_free(wpa_s->conf);
201 wpa_s->conf = NULL;
204 dladm_close(wpa_s->handle);
205 free(wpa_s->ap_wpa_ie);
206 pmksa_candidate_free(wpa_s);
207 pmksa_cache_free(wpa_s);
211 wpa_clear_keys(struct wpa_supplicant *wpa_s, uint8_t *addr)
213 wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, WPA_ALG_NONE,
215 wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, WPA_ALG_NONE,
217 wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, WPA_ALG_NONE,
219 wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid, WPA_ALG_NONE,
222 wpa_s->driver->set_key(wpa_s->handle, wpa_s->linkid,
228 wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s)
230 wpa_s->wpa_state = WPA_DISCONNECTED;
231 (void) memset(wpa_s->bssid, 0, IEEE80211_ADDR_LEN);
235 wpa_supplicant_set_suites(struct wpa_supplicant *wpa_s,
257 if (wpa_parse_wpa_ie(wpa_s, ap_ie, ap_ie_len, &ie)) {
263 wpa_s->proto = proto;
264 free(wpa_s->ap_wpa_ie);
265 wpa_s->ap_wpa_ie = malloc(ap_ie_len);
266 (void) memcpy(wpa_s->ap_wpa_ie, ap_ie, ap_ie_len);
267 wpa_s->ap_wpa_ie_len = ap_ie_len;
271 wpa_s->group_cipher = WPA_CIPHER_CCMP;
273 wpa_s->group_cipher = WPA_CIPHER_TKIP;
275 wpa_s->group_cipher = WPA_CIPHER_WEP104;
277 wpa_s->group_cipher = WPA_CIPHER_WEP40;
285 wpa_s->pairwise_cipher = WPA_CIPHER_CCMP;
287 wpa_s->pairwise_cipher = WPA_CIPHER_TKIP;
289 wpa_s->pairwise_cipher = WPA_CIPHER_NONE;
298 wpa_s->key_mgmt = WPA_KEY_MGMT_IEEE8021X;
300 wpa_s->key_mgmt = WPA_KEY_MGMT_PSK;
307 *wpa_ie_len = wpa_gen_wpa_ie(wpa_s, wpa_ie);
315 (void) memcpy(wpa_s->pmk, ssid->psk, PMK_LEN);
316 else if (wpa_s->cur_pmksa)
317 (void) memcpy(wpa_s->pmk, wpa_s->cur_pmksa->pmk, PMK_LEN);
319 (void) memset(wpa_s->pmk, 0, PMK_LEN);
325 static void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
331 wpa_s->reassociate = 0;
335 wpa_supplicant_cancel_scan(wpa_s);
339 wpa_s->cur_pmksa = pmksa_cache_get(wpa_s,
341 if (wpa_s->cur_pmksa) {
343 wpa_s->cur_pmksa->pmkid, PMKID_LEN);
345 if (wpa_supplicant_set_suites(wpa_s, bss, ssid,
355 wpa_clear_keys(wpa_s, bss->we_bssid.wb_bytes);
356 wpa_s->wpa_state = WPA_ASSOCIATING;
357 wpa_s->driver->associate(wpa_s->handle, wpa_s->linkid,
361 wpa_supplicant_req_auth_timeout(wpa_s, 15, 0);
365 wpa_supplicant_disassociate(struct wpa_supplicant *wpa_s, int reason_code)
368 wpa_s->wpa_state = WPA_DISCONNECTED;
369 if (memcmp(wpa_s->bssid, "\x00\x00\x00\x00\x00\x00",
371 wpa_s->driver->disassociate(wpa_s->handle, wpa_s->linkid,
373 addr = wpa_s->bssid;
375 wpa_clear_keys(wpa_s, addr);
379 wpa_supplicant_select_bss(struct wpa_supplicant *wpa_s, struct wpa_ssid *group,
413 wpa_parse_wpa_ie(wpa_s, bss->we_wpa_ie,
446 wpa_supplicant_scan_results(struct wpa_supplicant *wpa_s)
454 num = wpa_s->driver->get_scan_results(wpa_s->handle, wpa_s->linkid,
465 selected = wpa_supplicant_select_bss(wpa_s,
466 wpa_s->conf->ssid, results, num, &ssid);
469 if (wpa_s->reassociate ||
470 memcmp(selected->we_bssid.wb_bytes, wpa_s->bssid,
472 wpa_supplicant_associate(wpa_s, selected, ssid);
479 wpa_supplicant_req_scan(wpa_s, 5, 0); /* wait 5 seconds */
485 * @wpa_s: pointer to wpa_supplicant data; this is the @ctx variable registered
495 struct wpa_supplicant *wpa_s = cookie;
501 if (wpa_s->wpa_state < WPA_ASSOCIATED) {
502 wpa_s->wpa_state = WPA_ASSOCIATED;
503 if (wpa_s->key_mgmt == WPA_KEY_MGMT_NONE) {
504 wpa_supplicant_cancel_auth_timeout(wpa_s);
507 wpa_supplicant_req_auth_timeout(wpa_s, 10, 0);
512 if (wpa_s->wpa_state >= WPA_ASSOCIATED)
513 wpa_supplicant_req_scan(wpa_s, 0, 100000);
514 wpa_supplicant_mark_disassoc(wpa_s);
516 if (wpa_s->key_mgmt != WPA_KEY_MGMT_NONE)
517 wpa_clear_keys(wpa_s, wpa_s->bssid);
520 wpa_supplicant_scan_results(wpa_s);
522 (void) memset(wpa_s->rx_replay_counter, 0,
524 wpa_s->rx_replay_counter_set = 0;
525 wpa_s->renew_snonce = 1;
526 wpa_s->eapol_received = 0;
543 wpa_supplicant_driver_init(const char *link, struct wpa_supplicant *wpa_s)
545 wpa_s->l2 = l2_packet_init(link, ETHERTYPE_EAPOL,
546 wpa_supplicant_rx_eapol, wpa_s);
547 if (wpa_s->l2 == NULL)
550 if (l2_packet_get_own_addr(wpa_s->l2, wpa_s->own_addr)) {
555 if (wpa_s->driver->set_wpa(wpa_s->handle, wpa_s->linkid, 1) < 0) {
560 wpa_clear_keys(wpa_s, NULL);
561 wpa_supplicant_req_scan(wpa_s, 0, 100000);
673 wpa_config_read_network(struct wpa_supplicant *wpa_s)
698 wpa_s->driver->get_ssid(wpa_s->handle, wpa_s->linkid, (char *)buf);
703 (void) dladm_get_secobj(wpa_s->handle, (const char *)wpa_s->kname, &cl,
731 struct wpa_supplicant *wpa_s = arg;
741 ssid = wpa_config_read_network(wpa_s);
780 struct wpa_supplicant wpa_s;
824 if ((strlen(key) >= sizeof (wpa_s.kname))) {
840 /* This handle is stored in wpa_s when that struct is filled. */
870 (void) memset(&wpa_s, 0, sizeof (wpa_s));
871 wpa_s.driver = &wpa_driver_wifi_ops;
872 wpa_s.handle = handle;
873 wpa_s.linkid = linkid;
874 (void) strlcpy(wpa_s.kname, key, sizeof (wpa_s.kname));
875 eloop_init(&wpa_s);
881 wpa_s.conf = wpa_config_read(&wpa_s);
882 if (wpa_s.conf == NULL || wpa_s.conf->ssid == NULL) {
893 if (wpa_supplicant_door_setup(&wpa_s, door_file) != 0) {
899 wpa_s.renew_snonce = 1;
900 if (wpa_supplicant_driver_init(link, &wpa_s) < 0) {
921 wpa_supplicant_disassociate(&wpa_s, REASON_DEAUTH_LEAVING);
923 if (wpa_s.driver->set_wpa(wpa_s.handle, wpa_s.linkid, 0) < 0) {
930 wpa_supplicant_cleanup(&wpa_s);