supplicant: Call scan callback if needed when removing interface
[framework/connectivity/connman.git] / tools / supplicant-test.c
index 87dff6f..9b33275 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2009  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-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
@@ -45,13 +45,15 @@ static void create_callback(int result, struct supplicant_interface *interface,
 
        if (result < 0)
                return;
+
+       //supplicant_set_debug_level(1);
 }
 
 static void system_ready(void)
 {
        DBG("*");
 
-       supplicant_interface_create("wlan0", "nl80211",
+       supplicant_interface_create("wlan0", "nl80211,wext",
                                                create_callback, NULL);
 }
 
@@ -60,11 +62,23 @@ static void system_killed(void)
        DBG("*");
 }
 
+static void scan_callback(int result, void *user_data)
+{
+       DBG("* result %d", result);
+
+       if (result < 0)
+               return;
+}
+
 static void interface_added(struct supplicant_interface *interface)
 {
        const char *ifname = supplicant_interface_get_ifname(interface);
+       const char *driver = supplicant_interface_get_driver(interface);
 
-       DBG("* ifname %s", ifname);
+       DBG("* ifname %s driver %s", ifname, driver);
+
+       if (supplicant_interface_scan(interface, scan_callback, NULL) < 0)
+               DBG("scan failed");
 }
 
 static void interface_removed(struct supplicant_interface *interface)
@@ -74,6 +88,20 @@ static void interface_removed(struct supplicant_interface *interface)
        DBG("* ifname %s", ifname);
 }
 
+static void scan_started(struct supplicant_interface *interface)
+{
+       const char *ifname = supplicant_interface_get_ifname(interface);
+
+       DBG("* ifname %s", ifname);
+}
+
+static void scan_finished(struct supplicant_interface *interface)
+{
+       const char *ifname = supplicant_interface_get_ifname(interface);
+
+       DBG("* ifname %s", ifname);
+}
+
 static void network_added(struct supplicant_network *network)
 {
        const char *name = supplicant_network_get_name(network);
@@ -95,6 +123,8 @@ static const struct supplicant_callbacks callbacks = {
        .system_killed          = system_killed,
        .interface_added        = interface_added,
        .interface_removed      = interface_removed,
+       .scan_started           = scan_started,
+       .scan_finished          = scan_finished,
        .network_added          = network_added,
        .network_removed        = network_removed,
 };