X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gsupplicant%2Fgsupplicant.h;h=4e0118d95055054ac40b30730fc93ba6935e01ed;hb=57156cc5738cfbf60e1b0ddf444ad6eec5964a0d;hp=03df6ca87b3a9e2ea8d23eae6f2c5474c4fccebe;hpb=b5200f239dd56f76415cdb71e4d52586db938702;p=framework%2Fconnectivity%2Fconnman.git diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 03df6ca..4e0118d 100644 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -2,7 +2,7 @@ * * WPA supplicant library with GLib integration * - * Copyright (C) 2010 Intel Corporation. All rights reserved. + * Copyright (C) 2012 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -73,7 +73,10 @@ 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) +#define G_SUPPLICANT_WPS_REGISTRAR (1 << 3) typedef enum { G_SUPPLICANT_MODE_UNKNOWN, @@ -134,21 +137,34 @@ 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; /* global API */ -typedef void (*GSupplicantCountryCallback) (void *user_data); +typedef void (*GSupplicantCountryCallback) (int result, + const char *alpha2, + void *user_data); int g_supplicant_set_country(const char *alpha2, GSupplicantCountryCallback callback, @@ -175,6 +191,11 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface, GSupplicantInterfaceCallback callback, void *user_data); +int g_supplicant_interface_autoscan(GSupplicantInterface *interface, + const char *autoscan_data, + GSupplicantInterfaceCallback callback, + void *user_data); + int g_supplicant_interface_connect(GSupplicantInterface *interface, GSupplicantSSID *ssid, GSupplicantInterfaceCallback callback, @@ -204,6 +225,10 @@ unsigned int g_supplicant_interface_get_max_scan_ssids( int g_supplicant_interface_enable_selected_network(GSupplicantInterface *interface, dbus_bool_t enable); +int g_supplicant_interface_set_country(GSupplicantInterface *interface, + GSupplicantCountryCallback callback, + const char *alpha2, + void *user_data); /* Network API */ struct _GSupplicantNetwork; @@ -221,6 +246,9 @@ const char *g_supplicant_network_get_security(GSupplicantNetwork *network); dbus_int16_t g_supplicant_network_get_signal(GSupplicantNetwork *network); dbus_uint16_t g_supplicant_network_get_frequency(GSupplicantNetwork *network); dbus_bool_t g_supplicant_network_get_wps(GSupplicantNetwork *network); +dbus_bool_t g_supplicant_network_is_wps_active(GSupplicantNetwork *network); +dbus_bool_t g_supplicant_network_is_wps_pbc(GSupplicantNetwork *network); +dbus_bool_t g_supplicant_network_is_wps_advertizing(GSupplicantNetwork *network); struct _GSupplicantCallbacks { void (*system_ready) (void); @@ -242,6 +270,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