summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-02-26 08:39:36 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-02-26 08:39:36 +0100
commita88c950e23edd63ba4b3e8db414633f2a9449de4 (patch)
treed9417a73904aebaaa4a26e6dcf2faa51743c353e
parent0b7a3348208dfc4981a48bc22bf783c5d55e5b96 (diff)
downloadconnman-a88c950e23edd63ba4b3e8db414633f2a9449de4.tar.gz
connman-a88c950e23edd63ba4b3e8db414633f2a9449de4.tar.bz2
connman-a88c950e23edd63ba4b3e8db414633f2a9449de4.zip
Add supplicant disconnect function
-rw-r--r--plugins/supplicant.c18
-rw-r--r--plugins/supplicant.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/plugins/supplicant.c b/plugins/supplicant.c
index 3c02abd8..b30b16cb 100644
--- a/plugins/supplicant.c
+++ b/plugins/supplicant.c
@@ -269,6 +269,9 @@ int __supplicant_connect(struct connman_iface *iface,
exec_cmd(task, "DISABLE_NETWORK 0");
+ if (network == NULL)
+ return 0;
+
sprintf(cmd, "SET_NETWORK 0 ssid \"%s\"", network);
exec_cmd(task, cmd);
@@ -287,3 +290,18 @@ int __supplicant_connect(struct connman_iface *iface,
return 0;
}
+
+int __supplicant_disconnect(struct connman_iface *iface)
+{
+ struct supplicant_task *task;
+
+ task = find_task(iface->index);
+ if (task == NULL)
+ return -ENODEV;
+
+ printf("[SUPPLICANT] disconnect %s\n", task->ifname);
+
+ exec_cmd(task, "DISABLE_NETWORK 0");
+
+ return 0;
+}
diff --git a/plugins/supplicant.h b/plugins/supplicant.h
index 9e5ebc67..dc015ed7 100644
--- a/plugins/supplicant.h
+++ b/plugins/supplicant.h
@@ -26,3 +26,4 @@ int __supplicant_stop(struct connman_iface *iface);
int __supplicant_connect(struct connman_iface *iface,
const char *network, const char *passphrase);
+int __supplicant_disconnect(struct connman_iface *iface);