Link to, and adjust types for, the PCSC framework included with OSX
[mech_eap.git] / wpa_supplicant / ap.c
index 49fbc1b..7710a8d 100644 (file)
@@ -294,7 +294,10 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
 
        if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt))
                bss->wpa = ssid->proto;
-       bss->wpa_key_mgmt = ssid->key_mgmt;
+       if (ssid->key_mgmt == DEFAULT_KEY_MGMT)
+               bss->wpa_key_mgmt = WPA_KEY_MGMT_PSK;
+       else
+               bss->wpa_key_mgmt = ssid->key_mgmt;
        bss->wpa_pairwise = ssid->pairwise_cipher;
        if (ssid->psk_set) {
                bin_clear_free(bss->ssid.wpa_psk, sizeof(*bss->ssid.wpa_psk));
@@ -303,6 +306,7 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
                        return -1;
                os_memcpy(bss->ssid.wpa_psk->psk, ssid->psk, PMK_LEN);
                bss->ssid.wpa_psk->group = 1;
+               bss->ssid.wpa_psk_set = 1;
        } else if (ssid->passphrase) {
                bss->ssid.wpa_passphrase = os_strdup(ssid->passphrase);
        } else if (ssid->wep_key_len[0] || ssid->wep_key_len[1] ||
@@ -416,6 +420,8 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
             !(bss->wpa & 2)))
                goto no_wps; /* WPS2 does not allow WPA/TKIP-only
                              * configuration */
+       if (ssid->wps_disabled)
+               goto no_wps;
        bss->eap_server = 1;
 
        if (!ssid->ignore_broadcast_ssid)
@@ -444,6 +450,8 @@ static int wpa_supplicant_conf_ap(struct wpa_supplicant *wpa_s,
                os_memcpy(bss->uuid, wpa_s->conf->uuid, WPS_UUID_LEN);
        os_memcpy(bss->os_version, wpa_s->conf->os_version, 4);
        bss->pbc_in_m1 = wpa_s->conf->pbc_in_m1;
+       if (ssid->eap.fragment_size != DEFAULT_FRAGMENT_SIZE)
+               bss->fragment_size = ssid->eap.fragment_size;
 no_wps:
 #endif /* CONFIG_WPS */
 
@@ -654,6 +662,11 @@ int wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s,
        if (ieee80211_is_dfs(params.freq.freq))
                params.freq.freq = 0; /* set channel after CAC */
 
+       if (params.p2p)
+               wpa_drv_get_ext_capa(wpa_s, WPA_IF_P2P_GO);
+       else
+               wpa_drv_get_ext_capa(wpa_s, WPA_IF_AP_BSS);
+
        if (wpa_drv_associate(wpa_s, &params) < 0) {
                wpa_msg(wpa_s, MSG_INFO, "Failed to start AP functionality");
                return -1;