X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Fsupplicant-test.c;h=dc4da670f78543f01c1fbcf68594e32d1bc04bf1;hb=505c3fb154e1fd4b04305d688363b0280b4d58f1;hp=24fd5d8fe8669dea6077b8ad7bdb6413f019d155;hpb=b766c33ef02179be43134aaf533a844b93269a64;p=framework%2Fconnectivity%2Fconnman.git diff --git a/tools/supplicant-test.c b/tools/supplicant-test.c index 24fd5d8..dc4da67 100644 --- a/tools/supplicant-test.c +++ b/tools/supplicant-test.c @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2009 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2010 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 @@ -31,10 +31,104 @@ #include +#include "supplicant.h" + #define DBG(fmt, arg...) do { \ - syslog(LOG_DEBUG, "%s:%s() " fmt, __FILE__, __FUNCTION__ , ## arg); \ + syslog(LOG_DEBUG, "%s() " fmt, __FUNCTION__ , ## arg); \ } while (0) +static void create_callback(int result, struct supplicant_interface *interface, + void *user_data) +{ + DBG("* result %d ifname %s", result, + supplicant_interface_get_ifname(interface)); + + if (result < 0) + return; + + //supplicant_set_debug_level(1); +} + +static void system_ready(void) +{ + DBG("*"); + + supplicant_interface_create("wlan0", "nl80211,wext", + create_callback, NULL); +} + +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 driver %s", ifname, driver); + + if (supplicant_interface_scan(interface, scan_callback, NULL) < 0) + DBG("scan failed"); +} + +static void interface_removed(struct supplicant_interface *interface) +{ + const char *ifname = supplicant_interface_get_ifname(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); + + DBG("* name %s", name); + + DBG("* %s", supplicant_network_get_identifier(network)); +} + +static void network_removed(struct supplicant_network *network) +{ + const char *name = supplicant_network_get_name(network); + + DBG("* name %s", name); +} + +static const struct supplicant_callbacks callbacks = { + .system_ready = system_ready, + .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, +}; + static GMainLoop *main_loop = NULL; static void sig_term(int sig) @@ -82,8 +176,16 @@ int main(int argc, char *argv[]) syslog(LOG_INFO, "Startup"); + if (supplicant_register(&callbacks) < 0) { + syslog(LOG_ERR, "Failed to init supplicant"); + goto done; + } + g_main_loop_run(main_loop); + supplicant_unregister(&callbacks); + +done: syslog(LOG_INFO, "Exit"); dbus_connection_unref(conn);