diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2010-09-30 16:18:56 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-09-30 16:18:56 +0200 |
commit | fdc79b960c47656d7666fac6ab9d4656ec5fe83e (patch) | |
tree | a1bf7f2fea00fb0dbdd463fbae3b5ad619e4a90c | |
parent | 165515de3ca29e1de3bfe53818b1c2f1ee944ac3 (diff) | |
download | connman-fdc79b960c47656d7666fac6ab9d4656ec5fe83e.tar.gz connman-fdc79b960c47656d7666fac6ab9d4656ec5fe83e.tar.bz2 connman-fdc79b960c47656d7666fac6ab9d4656ec5fe83e.zip |
Implement WiFi network driver remove hook
-rw-r--r-- | plugins/supplicant.c | 19 | ||||
-rw-r--r-- | plugins/supplicant.h | 2 | ||||
-rw-r--r-- | plugins/wifi-legacy.c | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/plugins/supplicant.c b/plugins/supplicant.c index 867a9282..defe5f1b 100644 --- a/plugins/supplicant.c +++ b/plugins/supplicant.c @@ -2564,6 +2564,25 @@ int supplicant_disconnect(struct connman_network *network) return 0; } +void supplicant_remove_network(struct connman_network *network) +{ + struct supplicant_task *task; + int index; + + DBG("network %p", network); + + index = connman_network_get_index(network); + + task = find_task_by_index(index); + if (task == NULL) + return; + + if (task->network != network) + return; + + remove_network(task); +} + static void supplicant_activate(DBusConnection *conn) { DBusMessage *message; diff --git a/plugins/supplicant.h b/plugins/supplicant.h index 6745aacd..7eb88807 100644 --- a/plugins/supplicant.h +++ b/plugins/supplicant.h @@ -37,3 +37,5 @@ int supplicant_scan(struct connman_device *device); int supplicant_connect(struct connman_network *network); int supplicant_disconnect(struct connman_network *network); + +void supplicant_remove_network(struct connman_network *network); diff --git a/plugins/wifi-legacy.c b/plugins/wifi-legacy.c index 62938ccd..cfbd80b1 100644 --- a/plugins/wifi-legacy.c +++ b/plugins/wifi-legacy.c @@ -62,6 +62,8 @@ static int network_probe(struct connman_network *network) static void network_remove(struct connman_network *network) { DBG("network %p", network); + + supplicant_remove_network(network); } static int network_connect(struct connman_network *network) |