From fdc79b960c47656d7666fac6ab9d4656ec5fe83e Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Thu, 30 Sep 2010 16:18:56 +0200 Subject: [PATCH] Implement WiFi network driver remove hook --- plugins/supplicant.c | 19 +++++++++++++++++++ plugins/supplicant.h | 2 ++ plugins/wifi-legacy.c | 2 ++ 3 files changed, 23 insertions(+) diff --git a/plugins/supplicant.c b/plugins/supplicant.c index 867a928..defe5f1 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 6745aac..7eb8880 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 62938cc..cfbd80b 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) -- 2.7.4