diff options
author | Jukka Rissanen <jukka.rissanen@linux.intel.com> | 2012-05-04 15:24:32 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2012-05-04 16:17:05 +0300 |
commit | 305a6cb8bc6aa464a7a5e2669d00ac4691f4a2a5 (patch) | |
tree | 91a9ae59b32cd9d932a0abf86447d8a96f776052 /gsupplicant/gsupplicant.h | |
parent | 4cd19238f5499623391ebf74c74af03905a14ef8 (diff) | |
download | connman-305a6cb8bc6aa464a7a5e2669d00ac4691f4a2a5.tar.gz connman-305a6cb8bc6aa464a7a5e2669d00ac4691f4a2a5.tar.bz2 connman-305a6cb8bc6aa464a7a5e2669d00ac4691f4a2a5.zip |
wifi: Allow max number of scan entries
Do no limit the scan entries to 4 (G_SUPPLICANT_MAX_FAST_SCAN)
but use the limit given by the driver. The limit is given by wpa_s.
If the supplicant does not return the limit, then use 4 as a max
value.
Diffstat (limited to 'gsupplicant/gsupplicant.h')
-rw-r--r-- | gsupplicant/gsupplicant.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 883de7f4..5dc53642 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -73,8 +73,6 @@ extern "C" { #define G_SUPPLICANT_PAIRWISE_TKIP (1 << 1) #define G_SUPPLICANT_PAIRWISE_CCMP (1 << 2) -#define G_SUPPLICANT_MAX_FAST_SCAN 4 - #define G_SUPPLICANT_WPS_CONFIGURED (1 << 0) #define G_SUPPLICANT_WPS_PBC (1 << 1) #define G_SUPPLICANT_WPS_PIN (1 << 2) @@ -139,15 +137,26 @@ struct _GSupplicantSSID { typedef struct _GSupplicantSSID GSupplicantSSID; +/* + * Max number of SSIDs that can be scanned. + * In wpa_s 0.7x the limit is 4. + * In wps_s 0.8 or later it is 16. + * The value is only used if wpa_supplicant does not return any max limit + * for number of scannable SSIDs. + */ +#define WPAS_MAX_SCAN_SSIDS 4 + +struct scan_ssid { + unsigned char ssid[32]; + uint8_t ssid_len; +}; + struct _GSupplicantScanParams { - struct scan_ssid { - unsigned char ssid[32]; - uint8_t ssid_len; - } ssids[G_SUPPLICANT_MAX_FAST_SCAN]; + GSList *ssids; uint8_t num_ssids; - uint16_t freqs[G_SUPPLICANT_MAX_FAST_SCAN]; + uint16_t *freqs; }; typedef struct _GSupplicantScanParams GSupplicantScanParams; @@ -250,6 +259,14 @@ typedef struct _GSupplicantCallbacks GSupplicantCallbacks; int g_supplicant_register(const GSupplicantCallbacks *callbacks); void g_supplicant_unregister(const GSupplicantCallbacks *callbacks); +static inline +void g_supplicant_free_scan_params(GSupplicantScanParams *scan_params) +{ + g_slist_free_full(scan_params->ssids, g_free); + g_free(scan_params->freqs); + g_free(scan_params); +} + #ifdef __cplusplus } #endif |