Home | History | Annotate | Download | only in wpa_supplicant

Lines Matching refs:wpa_s

45 static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
51 conf->driver = wpa_s->driver;
53 os_strlcpy(bss->iface, wpa_s->ifname, sizeof(bss->iface));
73 if (wpa_s->hw.modes) {
76 for (i = 0; i < wpa_s->hw.num_modes; i++) {
77 if (wpa_s->hw.modes[i].mode == conf->hw_mode) {
78 mode = &wpa_s->hw.modes[i];
99 wpas_p2p_get_ht40_mode(wpa_s, mode,
150 bss->isolate = !wpa_s->conf->p2p_intra_bss;
151 bss->force_per_enrollee_psk = wpa_s->global->p2p_per_sta_psk;
203 else if (wpa_s->conf->dtim_period)
204 bss->dtim_period = wpa_s->conf->dtim_period;
208 else if (wpa_s->conf->beacon_int)
209 conf->beacon_int = wpa_s->conf->beacon_int;
276 if (wpa_s->conf->config_methods)
277 bss->config_methods = os_strdup(wpa_s->conf->config_methods);
278 os_memcpy(bss->device_type, wpa_s->conf->device_type,
280 if (wpa_s->conf->device_name) {
281 bss->device_name = os_strdup(wpa_s->conf->device_name);
282 bss->friendly_name = os_strdup(wpa_s->conf->device_name);
284 if (wpa_s->conf->manufacturer)
285 bss->manufacturer = os_strdup(wpa_s->conf->manufacturer);
286 if (wpa_s->conf->model_name)
287 bss->model_name = os_strdup(wpa_s->conf->model_name);
288 if (wpa_s->conf->model_number)
289 bss->model_number = os_strdup(wpa_s->conf->model_number);
290 if (wpa_s->conf->serial_number)
291 bss->serial_number = os_strdup(wpa_s->conf->serial_number);
292 if (is_nil_uuid(wpa_s->conf->uuid))
293 os_memcpy(bss->uuid, wpa_s->wps->uuid, WPS_UUID_LEN);
295 os_memcpy(bss->uuid, wpa_s->conf->uuid, WPS_UUID_LEN);
296 os_memcpy(bss->os_version, wpa_s->conf->os_version, 4);
297 bss->pbc_in_m1 = wpa_s->conf->pbc_in_m1;
301 if (wpa_s->max_stations &&
302 wpa_s->max_stations < wpa_s->conf->max_num_sta)
303 bss->max_num_sta = wpa_s->max_stations;
305 bss->max_num_sta = wpa_s->conf->max_num_sta;
307 bss->disassoc_low_ack = wpa_s->conf->disassoc_low_ack;
309 if (wpa_s->conf->ap_vendor_elements) {
311 wpabuf_dup(wpa_s->conf->ap_vendor_elements);
321 struct wpa_supplicant *wpa_s = ctx;
329 wpas_p2p_rx_action(wpa_s, mgmt->da, mgmt->sa, mgmt->bssid,
341 struct wpa_supplicant *wpa_s = ctx;
346 if (wpa_s->parent && wpa_s->parent != wpa_s &&
347 wpa_s == wpa_s->global->p2p_group_formation) {
353 wpa_msg(wpa_s->parent, MSG_INFO, WPS_EVENT_FAIL
357 wpas_p2p_wps_failed(wpa_s, fail);
375 struct wpa_supplicant *wpa_s = ctx;
376 if (wpa_s->ap_iface == NULL || wpa_s->current_ssid == NULL)
378 wpas_p2p_new_psk_cb(wpa_s, mac_addr, p2p_dev_addr, psk, psk_len);
386 struct wpa_supplicant *wpa_s = ctx;
394 wpas_p2p_rx_action(wpa_s, mgmt->da, mgmt->sa, mgmt->bssid,
408 struct wpa_supplicant *wpa_s = ctx;
409 return wpas_p2p_probe_req_rx(wpa_s, sa, da, bssid, ie, ie_len,
421 struct wpa_supplicant *wpa_s = ctx;
422 wpas_p2p_wps_success(wpa_s, mac_addr, 1);
429 struct wpa_supplicant *wpa_s = ctx;
431 wpa_supplicant_set_state(wpa_s, WPA_COMPLETED);
433 if (wpa_s->ap_configured_cb)
434 wpa_s->ap_configured_cb(wpa_s->ap_configured_cb_ctx,
435 wpa_s->ap_configured_cb_data);
439 int wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s,
452 wpa_supplicant_ap_deinit(wpa_s);
479 wpa_s->key_mgmt = WPA_KEY_MGMT_PSK;
481 wpa_s->key_mgmt = WPA_KEY_MGMT_NONE;
482 params.key_mgmt_suite = key_mgmt2driver(wpa_s->key_mgmt);
484 wpa_s->pairwise_cipher = wpa_pick_pairwise_cipher(ssid->pairwise_cipher,
486 if (wpa_s->pairwise_cipher < 0) {
492 wpa_cipher_to_suite_driver(wpa_s->pairwise_cipher);
501 if (wpa_s->parent->set_ap_uapsd)
502 params.uapsd = wpa_s->parent->ap_uapsd;
506 if (wpa_drv_associate(wpa_s, &params) < 0) {
507 wpa_msg(wpa_s, MSG_INFO, "Failed to start AP functionality");
511 wpa_s->ap_iface = hapd_iface = os_zalloc(sizeof(*wpa_s->ap_iface));
514 hapd_iface->owner = wpa_s;
515 hapd_iface->drv_flags = wpa_s->drv_flags;
516 hapd_iface->probe_resp_offloads = wpa_s->probe_resp_offloads;
517 hapd_iface->extended_capa = wpa_s->extended_capa;
518 hapd_iface->extended_capa_mask = wpa_s->extended_capa_mask;
519 hapd_iface->extended_capa_len = wpa_s->extended_capa_len;
521 wpa_s->ap_iface->conf = conf = hostapd_config_defaults();
523 wpa_supplicant_ap_deinit(wpa_s);
527 os_memcpy(wpa_s->ap_iface->conf->wmm_ac_params,
528 wpa_s->conf->wmm_ac_params,
529 sizeof(wpa_s->conf->wmm_ac_params));
536 if (wpa_supplicant_conf_ap(wpa_s, ssid, conf)) {
538 wpa_supplicant_ap_deinit(wpa_s);
554 wpa_supplicant_ap_deinit(wpa_s);
563 wpa_supplicant_ap_deinit(wpa_s);
567 hapd_iface->bss[i]->msg_ctx = wpa_s;
568 hapd_iface->bss[i]->msg_ctx_parent = wpa_s->parent;
570 hapd_iface->bss[i]->public_action_cb_ctx = wpa_s;
572 hapd_iface->bss[i]->vendor_action_cb_ctx = wpa_s;
574 ap_probe_req_rx, wpa_s);
576 hapd_iface->bss[i]->wps_reg_success_cb_ctx = wpa_s;
578 hapd_iface->bss[i]->wps_event_cb_ctx = wpa_s;
580 hapd_iface->bss[i]->sta_authorized_cb_ctx = wpa_s;
583 hapd_iface->bss[i]->new_psk_cb_ctx = wpa_s;
584 hapd_iface->bss[i]->p2p = wpa_s->global->p2p;
585 hapd_iface->bss[i]->p2p_group = wpas_p2p_group_init(wpa_s,
589 hapd_iface->bss[i]->setup_complete_cb_ctx = wpa_s;
592 os_memcpy(hapd_iface->bss[0]->own_addr, wpa_s->own_addr, ETH_ALEN);
593 hapd_iface->bss[0]->driver = wpa_s->driver;
594 hapd_iface->bss[0]->drv_priv = wpa_s->drv_priv;
596 wpa_s->current_ssid = ssid;
597 eapol_sm_notify_config(wpa_s->eapol, NULL, NULL);
598 os_memcpy(wpa_s->bssid, wpa_s->own_addr, ETH_ALEN);
599 wpa_s->assoc_freq = ssid->frequency;
601 if (hostapd_setup_interface(wpa_s->ap_iface)) {
603 wpa_supplicant_ap_deinit(wpa_s);
611 void wpa_supplicant_ap_deinit(struct wpa_supplicant *wpa_s)
614 eloop_cancel_timeout(wpas_wps_ap_pin_timeout, wpa_s, NULL);
617 if (wpa_s->ap_iface == NULL)
620 wpa_s->current_ssid = NULL;
621 eapol_sm_notify_config(wpa_s->eapol, NULL, NULL);
622 wpa_s->assoc_freq = 0;
624 if (wpa_s->ap_iface->bss)
625 wpa_s->ap_iface->bss[0]->p2p_group = NULL;
626 wpas_p2p_group_deinit(wpa_s);
628 hostapd_interface_deinit(wpa_s->ap_iface);
629 hostapd_interface_free(wpa_s->ap_iface);
630 wpa_s->ap_iface = NULL;
631 wpa_drv_deinit_ap(wpa_s);
639 struct wpa_supplicant *wpa_s = ctx;
640 hostapd_tx_status(wpa_s->ap_iface->bss[0], addr, buf, len, ack);
649 struct wpa_supplicant *wpa_s = ctx;
650 hostapd_tx_status(wpa_s->ap_iface->bss[0], dst, data, len, ack);
658 struct wpa_supplicant *wpa_s = ctx;
659 if (wpa_s->ap_iface)
660 hostapd_client_poll_ok(wpa_s->ap_iface->bss[0], addr);
668 struct wpa_supplicant *wpa_s = ctx;
669 ieee802_11_rx_from_unknown(wpa_s->ap_iface->bss[0], addr, wds);
677 struct wpa_supplicant *wpa_s = ctx;
682 ieee802_11_mgmt(wpa_s->ap_iface->bss[0], rx_mgmt->frame,
691 struct wpa_supplicant *wpa_s = ctx;
692 ieee802_11_mgmt_cb(wpa_s->ap_iface->bss[0], buf, len, stype, ok);
697 void wpa_supplicant_ap_rx_eapol(struct wpa_supplicant *wpa_s,
700 ieee802_1x_receive(wpa_s->ap_iface->bss[0], src_addr, buf, len);
706 int wpa_supplicant_ap_wps_pbc(struct wpa_supplicant *wpa_s, const u8 *bssid,
709 if (!wpa_s->ap_iface)
711 return hostapd_wps_button_pushed(wpa_s->ap_iface->bss[0],
716 int wpa_supplicant_ap_wps_cancel(struct wpa_supplicant *wpa_s)
721 if (!wpa_s->ap_iface || !wpa_s->ap_iface->bss[0]->wps)
724 reg = wpa_s->ap_iface->bss[0]->wps->registrar;
726 wps_sta = ap_for_each_sta(wpa_s->ap_iface->bss[0],
746 int wpa_supplicant_ap_wps_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
752 if (!wpa_s->ap_iface)
762 ret = hostapd_wps_add_pin(wpa_s->ap_iface->bss[0], bssid, "any", pin,
772 struct wpa_supplicant *wpa_s = eloop_data;
774 wpas_wps_ap_pin_disable(wpa_s);
778 static void wpas_wps_ap_pin_enable(struct wpa_supplicant *wpa_s, int timeout)
782 if (wpa_s->ap_iface == NULL)
784 hapd = wpa_s->ap_iface->bss[0];
787 eloop_cancel_timeout(wpas_wps_ap_pin_timeout, wpa_s, NULL);
790 wpas_wps_ap_pin_timeout, wpa_s, NULL);
794 void wpas_wps_ap_pin_disable(struct wpa_supplicant *wpa_s)
798 if (wpa_s->ap_iface == NULL)
801 hapd = wpa_s->ap_iface->bss[0];
804 eloop_cancel_timeout(wpas_wps_ap_pin_timeout, wpa_s, NULL);
808 const char * wpas_wps_ap_pin_random(struct wpa_supplicant *wpa_s, int timeout)
814 if (wpa_s->ap_iface == NULL)
816 hapd = wpa_s->ap_iface->bss[0];
823 wpas_wps_ap_pin_enable(wpa_s, timeout);
829 const char * wpas_wps_ap_pin_get(struct wpa_supplicant *wpa_s)
832 if (wpa_s->ap_iface == NULL)
834 hapd = wpa_s->ap_iface->bss[0];
839 int wpas_wps_ap_pin_set(struct wpa_supplicant *wpa_s, const char *pin,
846 if (wpa_s->ap_iface == NULL)
848 hapd = wpa_s->ap_iface->bss[0];
856 wpas_wps_ap_pin_enable(wpa_s, timeout);
862 void wpa_supplicant_ap_pwd_auth_fail(struct wpa_supplicant *wpa_s)
866 if (wpa_s->ap_iface == NULL)
868 hapd = wpa_s->ap_iface->bss[0];
889 struct wpabuf * wpas_ap_wps_nfc_config_token(struct wpa_supplicant *wpa_s,
894 if (wpa_s->ap_iface == NULL)
896 hapd = wpa_s->ap_iface->bss[0];
901 struct wpabuf * wpas_ap_wps_nfc_handover_sel(struct wpa_supplicant *wpa_s,
906 if (wpa_s->ap_iface == NULL)
908 hapd = wpa_s->ap_iface->bss[0];
919 int ap_ctrl_iface_sta_first(struct wpa_supplicant *wpa_s,
922 if (wpa_s->ap_iface == NULL)
924 return hostapd_ctrl_iface_sta_first(wpa_s->ap_iface->bss[0],
929 int ap_ctrl_iface_sta(struct wpa_supplicant *wpa_s, const char *txtaddr,
932 if (wpa_s->ap_iface == NULL)
934 return hostapd_ctrl_iface_sta(wpa_s->ap_iface->bss[0], txtaddr,
939 int ap_ctrl_iface_sta_next(struct wpa_supplicant *wpa_s, const char *txtaddr,
942 if (wpa_s->ap_iface == NULL)
944 return hostapd_ctrl_iface_sta_next(wpa_s->ap_iface->bss[0], txtaddr,
949 int ap_ctrl_iface_sta_disassociate(struct wpa_supplicant *wpa_s,
952 if (wpa_s->ap_iface == NULL)
954 return hostapd_ctrl_iface_disassociate(wpa_s->ap_iface->bss[0],
959 int ap_ctrl_iface_sta_deauthenticate(struct wpa_supplicant *wpa_s,
962 if (wpa_s->ap_iface == NULL)
964 return hostapd_ctrl_iface_deauthenticate(wpa_s->ap_iface->bss[0],
969 int ap_ctrl_iface_wpa_get_status(struct wpa_supplicant *wpa_s, char *buf,
976 if (wpa_s->ap_iface == NULL)
979 conf = wpa_s->ap_iface->bss[0]->conf;
1000 int wpa_supplicant_ap_update_beacon(struct wpa_supplicant *wpa_s)
1002 struct hostapd_iface *iface = wpa_s->ap_iface;
1003 struct wpa_ssid *ssid = wpa_s->current_ssid;
1006 if (ssid == NULL || wpa_s->ap_iface == NULL ||
1029 void wpas_ap_ch_switch(struct wpa_supplicant *wpa_s, int freq, int ht,
1032 if (!wpa_s->ap_iface)
1035 wpa_s->assoc_freq = freq;
1036 hostapd_event_ch_switch(wpa_s->ap_iface->bss[0], freq, ht, offset);
1040 int wpa_supplicant_ap_mac_addr_filter(struct wpa_supplicant *wpa_s,
1046 if (!wpa_s->ap_iface)
1055 hapd = wpa_s->ap_iface->bss[0];