static int wpa_config_read_global(struct wpa_config *config, HKEY hk) { int errors = 0; wpa_config_read_reg_dword(hk, TEXT("ap_scan"), &config->ap_scan); wpa_config_read_reg_dword(hk, TEXT("fast_reauth"), &config->fast_reauth); wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigPMKLifetime"), (int *) &config->dot11RSNAConfigPMKLifetime); wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigPMKReauthThreshold"), (int *) &config->dot11RSNAConfigPMKReauthThreshold); wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigSATimeout"), (int *) &config->dot11RSNAConfigSATimeout); wpa_config_read_reg_dword(hk, TEXT("update_config"), &config->update_config); if (wpa_config_read_reg_dword(hk, TEXT("eapol_version"), &config->eapol_version) == 0) { if (config->eapol_version < 1 || config->eapol_version > 2) { wpa_printf(MSG_ERROR, "Invalid EAPOL version (%d)", config->eapol_version); errors++; } } config->ctrl_interface = wpa_config_read_reg_string( hk, TEXT("ctrl_interface")); #ifdef CONFIG_WPS if (wpa_config_read_global_uuid(config, hk)) errors++; config->device_name = wpa_config_read_reg_string( hk, TEXT("device_name")); config->manufacturer = wpa_config_read_reg_string( hk, TEXT("manufacturer")); config->model_name = wpa_config_read_reg_string( hk, TEXT("model_name")); config->serial_number = wpa_config_read_reg_string( hk, TEXT("serial_number")); config->device_type = wpa_config_read_reg_string( hk, TEXT("device_type")); config->config_methods = wpa_config_read_reg_string( hk, TEXT("config_methods")); if (wpa_config_read_global_os_version(config, hk)) errors++; wpa_config_read_reg_dword(hk, TEXT("wps_cred_processing"), &config->wps_cred_processing); #endif /* CONFIG_WPS */ wpa_config_read_reg_dword(hk, TEXT("bss_max_count"), &config->bss_max_count); wpa_config_read_reg_dword(hk, TEXT("filter_ssids"), &config->filter_ssids); return errors ? -1 : 0; }
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"), &config->fast_reauth); wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigPMKLifetime"), (int *) &config->dot11RSNAConfigPMKLifetime); wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigPMKReauthThreshold"), (int *) &config->dot11RSNAConfigPMKReauthThreshold); wpa_config_read_reg_dword(hk, TEXT("dot11RSNAConfigSATimeout"), (int *) &config->dot11RSNAConfigSATimeout); wpa_config_read_reg_dword(hk, TEXT("update_config"), &config->update_config); if (wpa_config_read_reg_dword(hk, TEXT("eapol_version"), &config->eapol_version) == 0) { if (config->eapol_version < 1 || config->eapol_version > 2) { wpa_printf(MSG_ERROR, "Invalid EAPOL version (%d)", config->eapol_version); errors++; } } config->ctrl_interface = wpa_config_read_reg_string( hk, TEXT("ctrl_interface")); #ifdef CONFIG_WPS if (wpa_config_read_global_uuid(config, hk)) errors++; config->device_name = wpa_config_read_reg_string( hk, TEXT("device_name")); config->manufacturer = wpa_config_read_reg_string( hk, TEXT("manufacturer")); config->model_name = wpa_config_read_reg_string( hk, TEXT("model_name")); config->serial_number = wpa_config_read_reg_string( hk, TEXT("serial_number")); { char *t = wpa_config_read_reg_string( hk, TEXT("device_type")); if (t && wps_dev_type_str2bin(t, config->device_type)) errors++; os_free(t); } config->config_methods = wpa_config_read_reg_string( hk, TEXT("config_methods")); if (wpa_config_read_global_os_version(config, hk)) errors++; wpa_config_read_reg_dword(hk, TEXT("wps_cred_processing"), &config->wps_cred_processing); #endif /* CONFIG_WPS */ #ifdef CONFIG_P2P config->p2p_ssid_postfix = wpa_config_read_reg_string( hk, TEXT("p2p_ssid_postfix")); wpa_config_read_reg_dword(hk, TEXT("p2p_group_idle"), (int *) &config->p2p_group_idle); #endif /* CONFIG_P2P */ wpa_config_read_reg_dword(hk, TEXT("bss_max_count"), (int *) &config->bss_max_count); wpa_config_read_reg_dword(hk, TEXT("filter_ssids"), &config->filter_ssids); wpa_config_read_reg_dword(hk, TEXT("max_num_sta"), (int *) &config->max_num_sta); 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; wpa_config_read_reg_dword(hk, TEXT("sched_scan_num_short_intervals"), &config->sched_scan_num_short_intervals); wpa_config_read_reg_dword(hk, TEXT("sched_scan_short_interval"), &config->sched_scan_short_interval); wpa_config_read_reg_dword(hk, TEXT("sched_scan_long_intervals"), &config->sched_scan_long_intervals); return errors ? -1 : 0; }