diff options
author | Kalle Valo <kalle.valo@canonical.com> | 2010-10-27 21:49:30 +0300 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-11-02 12:38:07 +0100 |
commit | 9ecfa4914a5e86bfa6d6d3cc3e4d605ac8ccd9bc (patch) | |
tree | a34fb67a4beb4ffcd95ac56c6a328795cd36d8f7 /gsupplicant | |
parent | a091beb5bd344661c86b2c2a397740e2eed9e8e1 (diff) | |
download | connman-9ecfa4914a5e86bfa6d6d3cc3e4d605ac8ccd9bc.tar.gz connman-9ecfa4914a5e86bfa6d6d3cc3e4d605ac8ccd9bc.tar.bz2 connman-9ecfa4914a5e86bfa6d6d3cc3e4d605ac8ccd9bc.zip |
gsupplicant: Store network path
Store wpasupplicant network path so that it can be removed later.
Diffstat (limited to 'gsupplicant')
-rw-r--r-- | gsupplicant/supplicant.c | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 375a3780..a2501b94 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -138,6 +138,7 @@ static GHashTable *bss_mapping; struct _GSupplicantInterface { char *path; + char *network_path; unsigned int keymgmt_capa; unsigned int authalg_capa; unsigned int proto_capa; @@ -2022,39 +2023,53 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface, static void interface_select_network_result(const char *error, DBusMessageIter *iter, void *user_data) { + struct interface_connect_data *data = user_data; + SUPPLICANT_DBG(""); + + dbus_free(data); } static void interface_select_network_params(DBusMessageIter *iter, void *user_data) { - char *path = user_data; + struct interface_connect_data *data = user_data; + GSupplicantInterface *interface = data->interface; - dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &path); + dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, + &interface->network_path); } static void interface_add_network_result(const char *error, DBusMessageIter *iter, void *user_data) { struct interface_connect_data *data = user_data; - char *path = NULL; + GSupplicantInterface *interface = data->interface; + const char *path; if (error != NULL) - goto done; + goto error; dbus_message_iter_get_basic(iter, &path); if (path == NULL) - goto done; + goto error; SUPPLICANT_DBG("PATH: %s", path); + g_free(interface->network_path); + interface->network_path = g_strdup(path); + supplicant_dbus_method_call(data->interface->path, SUPPLICANT_INTERFACE ".Interface", "SelectNetwork", interface_select_network_params, - interface_select_network_result, path); + interface_select_network_result, data); -done: - dbus_free(data); + return; + +error: + g_free(interface->network_path); + interface->network_path = NULL; + g_free(data); } static void add_network_security_wep(DBusMessageIter *dict, |