X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2Fconfig_winreg.c;h=199f04fbbf13e4e3254726af35c06e03d3e1bb7a;hb=f8608fab859d68f993e49219e01eb47734e1a507;hp=de2ec58b1d017a3a7b64d43d3a317640664c989d;hpb=0f3d578efcff5f29d3b8af13edc3c1a9a3222129;p=mech_eap.git diff --git a/wpa_supplicant/config_winreg.c b/wpa_supplicant/config_winreg.c index de2ec58..199f04f 100644 --- a/wpa_supplicant/config_winreg.c +++ b/wpa_supplicant/config_winreg.c @@ -202,6 +202,7 @@ static int wpa_config_read_global_os_version(struct wpa_config *config, static int wpa_config_read_global(struct wpa_config *config, HKEY hk) { int errors = 0; + int val; wpa_config_read_reg_dword(hk, TEXT("ap_scan"), &config->ap_scan); wpa_config_read_reg_dword(hk, TEXT("fast_reauth"), @@ -271,6 +272,10 @@ static int wpa_config_read_global(struct wpa_config *config, HKEY hk) wpa_config_read_reg_dword(hk, TEXT("disassoc_low_ack"), (int *) &config->disassoc_low_ack); + wpa_config_read_reg_dword(hk, TEXT("okc"), &config->okc); + wpa_config_read_reg_dword(hk, TEXT("pmf"), &val); + config->pmf = val; + return errors ? -1 : 0; } @@ -297,6 +302,7 @@ static struct wpa_ssid * wpa_config_read_network(HKEY hk, const TCHAR *netw, RegCloseKey(nhk); return NULL; } + dl_list_init(&ssid->psk_list); ssid->id = id; wpa_config_set_network_defaults(ssid); @@ -344,13 +350,6 @@ static struct wpa_ssid * wpa_config_read_network(HKEY hk, const TCHAR *netw, wpa_config_update_psk(ssid); } - if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set) { - wpa_printf(MSG_ERROR, "WPA-PSK accepted for key management, " - "but no PSK configured for network '" TSTR "'.", - netw); - errors++; - } - if ((ssid->group_cipher & WPA_CIPHER_CCMP) && !(ssid->pairwise_cipher & WPA_CIPHER_CCMP) && !(ssid->pairwise_cipher & WPA_CIPHER_NONE)) { @@ -436,7 +435,7 @@ static int wpa_config_read_networks(struct wpa_config *config, HKEY hk) } -struct wpa_config * wpa_config_read(const char *name) +struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp) { TCHAR buf[256]; int errors = 0; @@ -444,7 +443,12 @@ struct wpa_config * wpa_config_read(const char *name) HKEY hk; LONG ret; - config = wpa_config_alloc_empty(NULL, NULL); + if (name == NULL) + return NULL; + if (cfgp) + config = cfgp; + else + config = wpa_config_alloc_empty(NULL, NULL); if (config == NULL) return NULL; wpa_printf(MSG_DEBUG, "Reading configuration profile '%s'", name); @@ -616,6 +620,12 @@ static int wpa_config_write_global(struct wpa_config *config, HKEY hk) wpa_config_write_reg_dword(hk, TEXT("disassoc_low_ack"), config->disassoc_low_ack, 0); + wpa_config_write_reg_dword(hk, TEXT("okc"), config->okc, 0); + wpa_config_write_reg_dword(hk, TEXT("pmf"), config->pmf, 0); + + wpa_config_write_reg_dword(hk, TEXT("external_sim"), + config->external_sim, 0); + return 0; } @@ -911,13 +921,18 @@ static int wpa_config_write_network(HKEY hk, struct wpa_ssid *ssid, int id) INT_DEFe(fragment_size, DEFAULT_FRAGMENT_SIZE); #endif /* IEEE8021X_EAPOL */ INT(mode); - INT(proactive_key_caching); + write_int(netw, "proactive_key_caching", ssid->proactive_key_caching, + -1); INT(disabled); INT(peerkey); #ifdef CONFIG_IEEE80211W - INT(ieee80211w); + write_int(netw, "ieee80211w", ssid->ieee80211w, + MGMT_FRAME_PROTECTION_DEFAULT); #endif /* CONFIG_IEEE80211W */ STR(id_str); +#ifdef CONFIG_HS20 + INT(update_identifier); +#endif /* CONFIG_HS20 */ #undef STR #undef INT