*
* Connection Manager
*
- * Copyright (C) 2007-2008 Intel Corporation. All rights reserved.
+ * Copyright (C) 2007-2009 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
*
*/
-#include <connman/element.h>
+#include <connman/device.h>
+#include <connman/network.h>
-#define SUPPLICANT_NAME "fi.epitest.hostap.WPASupplicant"
-#define SUPPLICANT_INTF "fi.epitest.hostap.WPASupplicant"
-#define SUPPLICANT_PATH "/fi/epitest/hostap/WPASupplicant"
-
-enum supplicant_state {
- STATE_INACTIVE,
- STATE_SCANNING,
- STATE_ASSOCIATING,
- STATE_ASSOCIATED,
- STATE_4WAY_HANDSHAKE,
- STATE_GROUP_HANDSHAKE,
- STATE_COMPLETED,
- STATE_DISCONNECTED,
-};
-
-struct supplicant_network {
- gchar *identifier;
- GByteArray *ssid;
- guint capabilities;
- gboolean has_wep;
- gboolean has_wpa;
- gboolean has_rsn;
+struct supplicant_driver {
+ const char *name;
+ void (*probe) (void);
+ void (*remove) (void);
};
-struct supplicant_callback {
- void (*state_change) (struct connman_element *element,
- enum supplicant_state state);
- void (*scan_result) (struct connman_element *element,
- struct supplicant_network *network);
-};
-
-int __supplicant_init(void);
-void __supplicant_exit(void);
-
-int __supplicant_start(struct connman_element *element,
- struct supplicant_callback *callback);
-int __supplicant_stop(struct connman_element *element);
+int supplicant_register(struct supplicant_driver *driver);
+void supplicant_unregister(struct supplicant_driver *driver);
-int __supplicant_scan(struct connman_element *element);
+int supplicant_start(struct connman_device *device);
+int supplicant_stop(struct connman_device *device);
+int supplicant_scan(struct connman_device *device);
-int __supplicant_connect(struct connman_element *element, const char *ssid);
-int __supplicant_disconnect(struct connman_element *element);
+int supplicant_connect(struct connman_network *network);
+int supplicant_disconnect(struct connman_network *network);