From 68d0e3ed07847339aedfac8e02f50db68c702e52 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Mon, 28 Oct 2013 17:59:21 -0700 Subject: Cumulative patch from commit 32b62704fac6af74f60b2effb173474e11ff089d 32b6270 Android: Fix ARRAY_SIZE() compilation 7617388 Interworking: Report STATUS:sp_type even if domain is not configured c20bc9d P2P: Remove compiler warning without CONFIG_IEEE80211N ca9bc5b P2P: Add VHT support 20ea1ca P2P: Add VHT parameter to P2P operations 53cfad4 nl80211: Mark VHT 80 MHz channels f2112b2 wpa_supplicant: Add CONFIG_IEEE80211AC 6b02335 hostapd: Mask out not-supported VHT capabilities 7f0303d hostapd: Verify VHT 160/80+80 MHz driver support c781eb8 hostapd: Verify VHT capabilities are supported by driver b29b012 Fix some VHT Capabilities definitions 7066a8e hostapd: Fix wrong VHT configuration capabilities flags 6651f1f nl80211: Use max tx power from regulatory domain 7ac3616 nl80211: Replace perror() and printf() calls with wpa_printf() 4d9fb08 WPS: Clear known_wps_freq in addition to after_wps d20c340 Interworking: Clear known_wps_freq for network selection f3be6ee tests: Allow test case descriptions to be written into database 1bd05d0 Interworking: Force normal scan for network selection 51e9f22 P2P: Add option to allow additional client channels 556b30d P2P: Add option to remove channels from GO use e7ecab4 Use ARRAY_SIZE() macro 39044a7 Introduce ARRAY_SIZE() macro 2e94624 DFS: Handle radar event when CAC actived correctly 5eaf240 DFS: Fix overlapped() function to check only DFS channels 345276a DFS: Adjust center freq correctly for VHT20/VHT40 1dc17db DFS: Fix available channels list for VHT80 34068ac nl80211: Add debug prints on nl_recvmsgs() failure 10b8592 nl80211: Make eloop sockets non-blocking 5f65e9f nl80211: Abstract handling of sockets on eloop e8d1168 nl80211: Register for IBSS auth frames before eloop 03610ad Clean up get_seqnum() use for IPN 29179b8 Stop ctrl_iface monitor send loop on reinit failure a2a535f Remove unnecessary wpa_s->conf checks 3318376 Add explicit buffer length checks for p2p_build_wps_ie() 0f01201 Verify that readlink() did not truncate result f5eb9da nl80211: Clean up if_add() for hostapd use a288da6 OpenSSL: Fix memory leak on error path 6cb4f11 nl80211: Fix strerror() value in P2P Dev debug messages 35f8363 DFS: Add forgotten break statement 2f243b8 Remove os_strncpy() 24f051e Replace remainining strncpy() uses with strlcpy() 41c526f P2P: Fix snprintf buffer length for group ifname backup Change-Id: I2e1506cb9219a5a37efbb2ae0dc180fb081c809f Signed-off-by: Dmitry Shmidt --- wpa_supplicant/config.c | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'wpa_supplicant/config.c') diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c index ea7ac5af..08d2ecdd 100644 --- a/wpa_supplicant/config.c +++ b/wpa_supplicant/config.c @@ -1686,7 +1686,7 @@ static const struct parse_data ssid_fields[] = { #undef _FUNC #undef FUNC #undef FUNC_KEY -#define NUM_SSID_FIELDS (sizeof(ssid_fields) / sizeof(ssid_fields[0])) +#define NUM_SSID_FIELDS ARRAY_SIZE(ssid_fields) /** @@ -1936,6 +1936,7 @@ void wpa_config_free(struct wpa_config *config) os_free(config->p2p_ssid_postfix); os_free(config->pssid); os_free(config->p2p_pref_chan); + os_free(config->p2p_no_go_freq.range); os_free(config->autoscan); os_free(config->freq_list); wpabuf_free(config->wps_nfc_dh_pubkey); @@ -3079,6 +3080,26 @@ fail: wpa_printf(MSG_ERROR, "Line %d: Invalid p2p_pref_chan list", line); return -1; } + + +static int wpa_config_process_p2p_no_go_freq( + const struct global_parse_data *data, + struct wpa_config *config, int line, const char *pos) +{ + int ret; + + ret = freq_range_list_parse(&config->p2p_no_go_freq, pos); + if (ret < 0) { + wpa_printf(MSG_ERROR, "Line %d: Invalid p2p_no_go_freq", line); + return -1; + } + + wpa_printf(MSG_DEBUG, "P2P: p2p_no_go_freq with %u items", + config->p2p_no_go_freq.num); + + return 0; +} + #endif /* CONFIG_P2P */ @@ -3229,7 +3250,10 @@ static const struct global_parse_data global_fields[] = { { INT_RANGE(p2p_intra_bss, 0, 1), CFG_CHANGED_P2P_INTRA_BSS }, { INT(p2p_group_idle), 0 }, { FUNC(p2p_pref_chan), CFG_CHANGED_P2P_PREF_CHAN }, + { FUNC(p2p_no_go_freq), CFG_CHANGED_P2P_PREF_CHAN }, + { INT_RANGE(p2p_add_cli_chan, 0, 1), 0 }, { INT(p2p_go_ht40), 0 }, + { INT(p2p_go_vht), 0 }, { INT(p2p_disabled), 0 }, { INT(p2p_no_group_iface), 0 }, { INT_RANGE(p2p_ignore_shared_freq, 0, 1), 0 }, @@ -3278,7 +3302,7 @@ static const struct global_parse_data global_fields[] = { #undef STR #undef STR_RANGE #undef BIN -#define NUM_GLOBAL_FIELDS (sizeof(global_fields) / sizeof(global_fields[0])) +#define NUM_GLOBAL_FIELDS ARRAY_SIZE(global_fields) int wpa_config_process_global(struct wpa_config *config, char *pos, int line) -- cgit v1.2.3