summaryrefslogtreecommitdiff
path: root/gsupplicant/gsupplicant.h
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-05-04 15:24:32 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-05-04 16:17:05 +0300
commit305a6cb8bc6aa464a7a5e2669d00ac4691f4a2a5 (patch)
tree91a9ae59b32cd9d932a0abf86447d8a96f776052 /gsupplicant/gsupplicant.h
parent4cd19238f5499623391ebf74c74af03905a14ef8 (diff)
downloadconnman-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.h31
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