This email list is read-only.  Emails sent to this list will be discarded
----------------------------------
 include/Makefile.am  |    2 +-
 include/dbus.h       |    1 +
 include/device.h     |   10 +-
 include/element.h    |    4 +-
 include/network.h    |   17 +-
 include/rtnl.h       |   11 +-
 include/storage.h    |   60 +++++
 include/types.h      |    3 +-
 plugins/bluetooth.c  |   15 +-
 plugins/ethernet.c   |   98 +++-----
 plugins/hso.c        |    2 +-
 plugins/huawei.c     |    2 +-
 plugins/novatel.c    |    2 +-
 plugins/supplicant.c |  690 +++++++++++++++++++++++++++++++++-----------------
 plugins/supplicant.h |   62 +----
 plugins/wifi.c       |  580 +++---------------------------------------
 src/connman.h        |   25 ++-
 src/detect.c         |    2 +-
 src/device.c         |  368 +++++++++++++++++++++++----
 src/element.c        |  236 +++---------------
 src/log.c            |    5 +
 src/network.c        |  415 ++++++++++++++++++++++++++++--
 src/rtnl.c           |   90 +++++++
 src/storage.c        |  212 ++++++----------
 test/Makefile.am     |    4 +-
 test/debug-connman   |   41 +++
 26 files changed, 1625 insertions(+), 1332 deletions(-)

New commits:
commit 19262ea6023ca56de20d5b69950bed1146437849
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 05:38:28 2009 +0100

    Handle scanning status and connecting

commit 186b6fa635e755c824756db8e483eb6c92cb3167
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 05:37:51 2009 +0100

    Add support for connecting known networks

commit 9b05cebe93ad885ee2a2156f6310eb7da365e581
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 04:50:18 2009 +0100

    Add support for automatic connection policy

commit 9781e0c3e2c8284691c753eb9bf3941823fab46b
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 04:11:52 2009 +0100

    Remove ununsed disconnect code

commit c795f784422e6b5ad03fe358b5ec6175826865b7
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 04:11:08 2009 +0100

    Check connected state and improve disconnect

commit 71d46c63b8394c8bcf029186a7d2f43073512e92
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 04:03:14 2009 +0100

    Fix problem with wpa_supplicant disconnect

commit 97b08399a975d3b9891c2a7e63199fed23ac80ae
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 04:00:39 2009 +0100

    Fix WiFi connection handling

commit 825852128bc6ebe2f922dd7213d7eaba0437facf
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 03:59:47 2009 +0100

    Add function for handling WiFi passphrases

commit 1b30e42e2965c23e733fcca3d24e17f071742d37
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 03:22:34 2009 +0100

    Fix coding style issue

commit 2d8a020fb34c412753aedafefd4963522ee64d8b
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 03:21:57 2009 +0100

    Remove shadowed variables

commit 474f7506381da61fd69cd3446951a2bb4bbafeae
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 03:17:37 2009 +0100

    Add support for connecting WiFi networks

commit ea1f8757bccdd6c52a9a3000849e1c79e4cb5a9a
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 03:16:54 2009 +0100

    Add function to retrieve blob from network

commit 2959459da0a3bc085abf1ec2a523b4e444a580a3
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:48:43 2009 +0100

    Detect changes in WiFi security setting

commit 0cd6ba6351d71f1a6738dd4fb1acc78cbc007c79
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:46:08 2009 +0100

    Add support for storing network details

commit a131c9b98d4c40fbbc08d7bf0e0cc0fe3d37beda
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:45:04 2009 +0100

    Fix memory leak in loading function

commit 42ec7c7c913713e48ff9c3c641db662e3522d3a8
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:44:00 2009 +0100

    Add function to get device name

commit 95bdfbfe8962c3479527285088594dd657d7a6e0
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:26:37 2009 +0100

    Remove unused available variable

commit 8b47a6c99ab920165ff2919cbf7a2b214fb0b0c1
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:23:44 2009 +0100

    Remove element specific storage functions

commit 5d5856602967fb8e1055bb5923bac117093a8214
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:21:39 2009 +0100

    Use device and network specific storage helpers

commit fb1125eea6a02095e9a8763328b540e3d8fec718
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:19:25 2009 +0100

    Add support for setting network properties

commit 5cf5986084d5c8b68ee824a463b8ef41838465b0
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:18:50 2009 +0100

    Use dbus_bool_t for exported variables

commit aec3be85b3858fd70f6ed6167e730f96f443c70f
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:10:27 2009 +0100

    Only return networks that are registered

commit 0413d2c1ec2a7d0c80cb4657c4bed22147a3c90e
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 02:09:51 2009 +0100

    Check for invalid devices first

commit 888b54002e0ba4e465f0ae1628c475dfc54ffef1
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:45:05 2009 +0100

    Update WiFi plugin for new network helper functions

commit 14a162c1c42466791a655475289770da076bfd71
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:32:28 2009 +0100

    Remove scanning support from elements

commit e7a8f816ab9cb02249659bc3523722e0b86de05d
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:30:27 2009 +0100

    Remove special handling for devices and networks

commit 3d4f387859e9ea1ed36af5c42a791a7597e1adec
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:27:45 2009 +0100

    Remove network interface support from elements

commit b3e54c3c8b2a4f83da7e7bf6c3c91b4b7f501151
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:23:53 2009 +0100

    Use the property functions for path data

commit e061175d100cbb068b572030b88981f83984287c
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:23:29 2009 +0100

    Add support for more device and network properties

commit a2a0ab77eb03a56044c13ca5886065d092364481
Author: Marcel Holtmann <[email protected]>
Date:   Mon Jan 5 00:00:55 2009 +0100

    Add functions for setting network properties

commit 79b06da8b3eb03ed8da7f9a3a3ea11822c75fa1d
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 21:17:42 2009 +0100

    Fix typo in state parsing

commit 3f83680866994c2859b9b7286595f2d8d17accb8
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 21:12:27 2009 +0100

    Fix error messages for interface replies

commit f419f84ecd0fc2d642befbe1ffb2bfea9607230e
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 20:58:07 2009 +0100

    Use async creation and removal for supplicant interfaces

commit 307c129f118759615c60832264b856b8ba63fef7
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 20:52:07 2009 +0100

    Don't attempt scanning if device is switched off

commit 44ed8df3ee8197d0cb06a4250cf51484b88e5b5b
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:58:06 2009 +0100

    Add support for device default storage

commit 625f2806e7d80e99709ef3b1441e8bc1db9dae4e
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:31:17 2009 +0100

    Hook up default storage callbacks

commit e68f7d8da19c66c657fd3d2cfff0cfc61ba1bda0
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:28:59 2009 +0100

    Remove useless driver debugging details

commit 837f2fa6404de09d312ad5d41c0b67029bd6b266
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:25:42 2009 +0100

    Hook up loading and saving functions

commit 92fcf25b006be340a57d75882365f1a6747dc668
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:25:07 2009 +0100

    Add functions for loading and saving information

commit 409f3e68cc39cb66fe706c164484518e3706c81e
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:24:10 2009 +0100

    Add storage callbacks for networks

commit 832779e0248011f09edf32e4d9daec13ee5daa93
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:07:56 2009 +0100

    Register default device and network storage drivers

commit 186c1b8419c70a5649462e35fe0910099501a412
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 19:02:00 2009 +0100

    Add skeleton for storage drivers

commit 94fca351c2cd0a75ea6b71462a084dc8ffe2e78d
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 18:18:24 2009 +0100

    Add callbacks to supplicant driver

commit 0890f0dcc8c42b4d2de01e42a577fb570b29b6a9
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 18:06:11 2009 +0100

    Use global supplicant filter matching rule

commit 9becf7a55594656e9eab6ee11e7a72af4924ad2c
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 17:49:33 2009 +0100

    Remove unused prototype declaration

commit decb27a1cd8cfb19eafd80fc46bc328161738898
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 17:48:41 2009 +0100

    Add basics for a supplicant driver and use it

commit 1c914879892265fa8cbcf85bd81c262f7c19dfb5
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:54:42 2009 +0100

    Remove useless suffix of device driver names

commit dee314f2f013fd11b6fc15a0765d672cd788271c
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:51:10 2009 +0100

    All vendor specific types start at 10000

commit aca8be4723ea5f08ba98c49eb042477920405fea
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:43:05 2009 +0100

    Remove unused includes and define IFF_LOWER_UP

commit c16fbb9f4c69084d43cbacba834ba2b4b2cc4b17
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:36:10 2009 +0100

    Add script to debug element details

commit c7799147ac67fe1670bf05e7ccb6beae80c0e300
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:33:56 2009 +0100

    Add support for element based debugging

commit 9911ffd65ccd2d2cacfa1bf55ac70e3c1ec00a67
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:33:18 2009 +0100

    Add function to retrieve current debug status

commit 91620bc550205144b793d4f8e7d96f7b9f78e9c6
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:14:13 2009 +0100

    Use RTNL newlink watch to reduce code complexity

commit 3ff7262ed26840a697c914a7905543d6c3efac6c
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 16:13:35 2009 +0100

    Add support for RTNL newlink watches

commit 5ae55853fca4017221895b03cece096e361dac36
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 15:37:48 2009 +0100

    Add extern declarations to public functions

commit b28ec057616f661f980e96defa991ab7ee702c4f
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 02:58:54 2009 +0100

    Use global device detection for WiFi

commit aaf7e33db53954cc5a8c87e0cc6f3264fcc62b51
Author: Marcel Holtmann <[email protected]>
Date:   Sun Jan 4 02:57:15 2009 +0100

    Don't list devices without drivers


Diff in this email is a maximum of 400 lines.
diff --git a/include/Makefile.am b/include/Makefile.am
index 67ffb4e..84eece9 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -2,7 +2,7 @@
 includedir = @includedir@/connman
 
 include_HEADERS = types.h log.h plugin.h security.h resolver.h \
-                                               device.h network.h
+                                       storage.h device.h network.h
 
 noinst_HEADERS = driver.h element.h property.h ipv4.h rtnl.h dbus.h
 
diff --git a/include/dbus.h b/include/dbus.h
index 895a96d..77766c7 100644
--- a/include/dbus.h
+++ b/include/dbus.h
@@ -30,6 +30,7 @@ extern "C" {
 
 #define CONNMAN_SERVICE                        "org.moblin.connman"
 
+#define CONNMAN_DEBUG_INTERFACE                CONNMAN_SERVICE ".Debug"
 #define CONNMAN_ERROR_INTERFACE                CONNMAN_SERVICE ".Error"
 #define CONNMAN_AGENT_INTERFACE                CONNMAN_SERVICE ".Agent"
 
diff --git a/include/device.h b/include/device.h
index 44032b0..350890f 100644
--- a/include/device.h
+++ b/include/device.h
@@ -45,7 +45,7 @@ enum connman_device_type {
        CONNMAN_DEVICE_TYPE_NOZOMI    = 16,
        CONNMAN_DEVICE_TYPE_HUAWEI    = 17,
        CONNMAN_DEVICE_TYPE_NOVATEL   = 18,
-       CONNMAN_DEVICE_TYPE_VENDOR    = 42,
+       CONNMAN_DEVICE_TYPE_VENDOR    = 10000,
 };
 
 enum connman_device_mode {
@@ -70,8 +70,7 @@ extern struct connman_device *connman_device_create(const 
char *node,
 extern struct connman_device *connman_device_ref(struct connman_device 
*device);
 extern void connman_device_unref(struct connman_device *device);
 
-extern void connman_device_set_path(struct connman_device *device,
-                                                       const char *path);
+extern const char *connman_device_get_name(struct connman_device *device);
 extern const char *connman_device_get_path(struct connman_device *device);
 extern void connman_device_set_index(struct connman_device *device,
                                                                int index);
@@ -92,6 +91,11 @@ extern int connman_device_set_carrier(struct connman_device 
*device,
 extern int connman_device_set_scanning(struct connman_device *device,
                                                connman_bool_t scanning);
 
+extern int connman_device_set_string(struct connman_device *device,
+                                       const char *key, const char *value);
+extern const char *connman_device_get_string(struct connman_device *device,
+                                                       const char *key);
+
 extern int connman_device_add_network(struct connman_device *device,
                                        struct connman_network *network);
 extern struct connman_network *connman_device_get_network(struct 
connman_device *device,
diff --git a/include/element.h b/include/element.h
index 7e7774b..fbd28f2 100644
--- a/include/element.h
+++ b/include/element.h
@@ -64,8 +64,8 @@ enum connman_element_type {
        CONNMAN_ELEMENT_TYPE_DHCP       = 9,
        CONNMAN_ELEMENT_TYPE_BOOTP      = 10,
        CONNMAN_ELEMENT_TYPE_ZEROCONF   = 11,
-
        CONNMAN_ELEMENT_TYPE_CONNECTION = 42,
+       CONNMAN_ELEMENT_TYPE_VENDOR     = 10000,
 };
 
 enum connman_element_subtype {
@@ -90,8 +90,6 @@ struct connman_element {
        enum connman_element_state state;
        enum connman_element_policy policy;
        gboolean enabled;
-       gboolean scanning;
-       gboolean available;
        gboolean remember;
        guint16 priority;
        guint8 strength;
diff --git a/include/network.h b/include/network.h
index b0138f4..70b7c35 100644
--- a/include/network.h
+++ b/include/network.h
@@ -41,6 +41,7 @@ enum connman_network_type {
        CONNMAN_NETWORK_TYPE_BLUETOOTH_PAN = 8,
        CONNMAN_NETWORK_TYPE_BLUETOOTH_DUN = 9,
        CONNMAN_NETWORK_TYPE_HSO           = 23,
+       CONNMAN_NETWORK_TYPE_VENDOR        = 10000,
 };
 
 enum connman_network_protocol {
@@ -58,8 +59,6 @@ extern void connman_network_unref(struct connman_network 
*network);
 
 extern const char *connman_network_get_identifier(struct connman_network 
*network);
 
-extern void connman_network_set_path(struct connman_network *network,
-                                                       const char *path);
 extern const char *connman_network_get_path(struct connman_network *network);
 extern void connman_network_set_index(struct connman_network *network,
                                                                int index);
@@ -70,6 +69,20 @@ extern void connman_network_set_protocol(struct 
connman_network *network,
 
 extern int connman_network_set_connected(struct connman_network *network,
                                                connman_bool_t connected);
+extern connman_bool_t connman_network_get_remember(struct connman_network 
*network);
+
+extern int connman_network_connect(struct connman_network *network);
+
+extern int connman_network_set_string(struct connman_network *network,
+                                       const char *key, const char *value);
+extern const char *connman_network_get_string(struct connman_network *network,
+                                                       const char *key);
+extern int connman_network_set_uint8(struct connman_network *network,
+                                       const char *key, connman_uint8_t value);
+extern int connman_network_set_blob(struct connman_network *network,
+                       const char *key, const void *data, unsigned int size);
+extern const void *connman_network_get_blob(struct connman_network *network,
+                                       const char *key, unsigned int *size);
 
 extern struct connman_device *connman_network_get_device(struct 
connman_network *network);
 
diff --git a/include/rtnl.h b/include/rtnl.h
index dcab14d..c78556b 100644
--- a/include/rtnl.h
+++ b/include/rtnl.h
@@ -32,6 +32,13 @@ extern "C" {
  * @short_description: Functions for registering RTNL modules
  */
 
+typedef void (* connman_rtnl_link_cb_t) (unsigned flags, unsigned change,
+                                                       void *user_data);
+
+extern unsigned int connman_rtnl_add_newlink_watch(int index,
+                       connman_rtnl_link_cb_t callback, void *user_data);
+extern void connman_rtnl_remove_watch(unsigned int id);
+
 #define CONNMAN_RTNL_PRIORITY_LOW      -100
 #define CONNMAN_RTNL_PRIORITY_DEFAULT     0
 #define CONNMAN_RTNL_PRIORITY_HIGH      100
@@ -50,8 +57,8 @@ struct connman_rtnl {
 extern int connman_rtnl_register(struct connman_rtnl *rtnl);
 extern void connman_rtnl_unregister(struct connman_rtnl *rtnl);
 
-int connman_rtnl_send_getlink(void);
-int connman_rtnl_send_getroute(void);
+extern int connman_rtnl_send_getlink(void);
+extern int connman_rtnl_send_getroute(void);
 
 #ifdef __cplusplus
 }
diff --git a/include/storage.h b/include/storage.h
new file mode 100644
index 0000000..9182675
--- /dev/null
+++ b/include/storage.h
@@ -0,0 +1,60 @@
+/*
+ *
+ *  Connection Manager
+ *
+ *  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
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __CONNMAN_STORAGE_H
+#define __CONNMAN_STORAGE_H
+
+#include <connman/device.h>
+#include <connman/network.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * SECTION:storage
+ * @title: Storage premitives
+ * @short_description: Functions for registering storage modules
+ */
+
+#define CONNMAN_STORAGE_PRIORITY_LOW      -100
+#define CONNMAN_STORAGE_PRIORITY_DEFAULT     0
+#define CONNMAN_STORAGE_PRIORITY_HIGH      100
+
+struct connman_storage {
+       const char *name;
+       int priority;
+       enum connman_device_type device_type;
+       int (*device_load) (struct connman_device *device);
+       int (*device_save) (struct connman_device *device);
+       enum connman_network_type network_type;
+       int (*network_load) (struct connman_network *network);
+       int (*network_save) (struct connman_network *network);
+};
+
+extern int connman_storage_register(struct connman_storage *storage);
+extern void connman_storage_unregister(struct connman_storage *storage);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CONNMAN_STORAGE_H */
diff --git a/include/types.h b/include/types.h
index 648fee1..af2a81b 100644
--- a/include/types.h
+++ b/include/types.h
@@ -34,7 +34,8 @@ extern "C" {
 #define        TRUE    (!FALSE)
 #endif
 
-typedef int    connman_bool_t;
+typedef int            connman_bool_t;
+typedef unsigned char  connman_uint8_t;
 
 #ifdef __cplusplus
 }
diff --git a/plugins/bluetooth.c b/plugins/bluetooth.c
index 5bde01d..200c3ff 100644
--- a/plugins/bluetooth.c
+++ b/plugins/bluetooth.c
@@ -218,7 +218,7 @@ done:
 static int pan_connect(struct connman_network *network)
 {
        struct network_data *data = connman_network_get_data(network);
-       const char *path = connman_network_get_path(network);
+       const char *path = connman_network_get_string(network, "Node");
        const char *uuid = "nap";
        DBusMessage *message;
        DBusPendingCall *call;
@@ -284,7 +284,7 @@ done:
 static int pan_disconnect(struct connman_network *network)
 {
        struct network_data *data = connman_network_get_data(network);
-       const char *path = connman_network_get_path(network);
+       const char *path = connman_network_get_string(network, "Node");
        DBusMessage *message;
        DBusPendingCall *call;
 
@@ -404,7 +404,7 @@ static int change_powered(DBusConnection *connection, const 
char *path,
 static int bluetooth_enable(struct connman_device *adapter)
 {
        struct adapter_data *data = connman_device_get_data(adapter);
-       const char *path = connman_device_get_path(adapter);
+       const char *path = connman_device_get_string(adapter, "Node");
 
        DBG("adapter %p", adapter);
 
@@ -414,7 +414,7 @@ static int bluetooth_enable(struct connman_device *adapter)
 static int bluetooth_disable(struct connman_device *adapter)
 {
        struct adapter_data *data = connman_device_get_data(adapter);
-       const char *path = connman_device_get_path(adapter);
+       const char *path = connman_device_get_string(adapter, "Node");
 
        DBG("adapter %p", adapter);
 
@@ -465,7 +465,8 @@ static struct connman_device *find_adapter(const char *path)
 
        for (list = adapter_list; list; list = list->next) {
                struct connman_device *adapter = list->data;
-               const char *adapter_path = connman_device_get_path(adapter);
+               const char *adapter_path = connman_device_get_string(adapter,
+                                                                       "Node");
 
                if (adapter_path == NULL)
                        continue;
@@ -495,7 +496,7 @@ static void device_properties(DBusConnection *connection, 
const char *path,
        if (network == NULL)
                return;
 
-       connman_network_set_path(network, path);
+       connman_network_set_string(network, "Node", path);
 
        connman_device_add_network(device, network);
 }
@@ -614,7 +615,7 @@ static void adapter_properties(DBusConnection *connection, 
const char *path,
        if (adapter == NULL)
                return;
 
-       connman_device_set_path(adapter, path);
+       connman_device_set_string(adapter, "Node", path);
 
        if (node != NULL && g_str_has_prefix(node, "hci") == TRUE) {
                int index;
diff --git a/plugins/ethernet.c b/plugins/ethernet.c
index 1ddf1fa..4ef163c 100644
--- a/plugins/ethernet.c
+++ b/plugins/ethernet.c
@@ -24,13 +24,11 @@
 #endif
 
 #include <errno.h>
-#include <unistd.h>
-#include <string.h>
-#include <sys/ioctl.h>
-#include <sys/socket.h>
-#include <linux/if.h>
-#include <linux/netlink.h>
-#include <linux/rtnetlink.h>
+#include <net/if.h>
+
+#ifndef IFF_LOWER_UP
+#define IFF_LOWER_UP   0x10000
+#endif
 
 #include <glib.h>
 
@@ -45,56 +43,38 @@
 struct ethernet_data {
        int index;
        unsigned flags;
+       unsigned int watch;
 };
 
-static GSList *ethernet_list = NULL;
-
-static void ethernet_newlink(unsigned short type, int index,
-                                       unsigned flags, unsigned change)
+static void ethernet_newlink(unsigned flags, unsigned change, void *user_data)
 {
-       GSList *list;
-
-       DBG("index %d flags %ld change %ld", index, flags, change);
-
-       for (list = ethernet_list; list; list = list->next) {
-               struct connman_device *device = list->data;
-               struct ethernet_data *ethernet;
-
-               ethernet = connman_device_get_data(device);
-               if (ethernet == NULL)
-                       continue;
+       struct connman_device *device = user_data;
+       struct ethernet_data *ethernet = connman_device_get_data(device);
 
-               if (ethernet->index != index)
-                       continue;
+       DBG("index %d flags %ld change %ld", ethernet->index, flags, change);
 
-               if ((ethernet->flags & IFF_UP) != (flags & IFF_UP)) {
-                       if (flags & IFF_UP) {
-                               DBG("power on");
-                               connman_device_set_powered(device, TRUE);
-                       } else {
-                               DBG("power off");
-                               connman_device_set_powered(device, FALSE);
-                       }
+       if ((ethernet->flags & IFF_UP) != (flags & IFF_UP)) {
+               if (flags & IFF_UP) {
+                       DBG("power on");
+                       connman_device_set_powered(device, TRUE);
+               } else {
+                       DBG("power off");
+                       connman_device_set_powered(device, FALSE);
                }
+       }
 
-               if ((ethernet->flags & IFF_LOWER_UP) != (flags & IFF_LOWER_UP)) 
{
-                       if (flags & IFF_LOWER_UP) {
-                               DBG("carrier on");
-                               connman_device_set_carrier(device, TRUE);
-                       } else {
-                               DBG("carrier off");
-                               connman_device_set_carrier(device, FALSE);
-                       }
+       if ((ethernet->flags & IFF_LOWER_UP) != (flags & IFF_LOWER_UP)) {
+               if (flags & IFF_LOWER_UP) {
+                       DBG("carrier on");
+                       connman_device_set_carrier(device, TRUE);
+               } else {
+                       DBG("carrier off");
+                       connman_device_set_carrier(device, FALSE);
                }
-
-               ethernet->flags = flags;
        }
-}
 
-static struct connman_rtnl ethernet_rtnl = {
-       .name           = "ethernet",
-       .newlink        = ethernet_newlink,
-};
+       ethernet->flags = flags;
_______________________________________________
Commits mailing list
[email protected]
https://lists.moblin.org/mailman/listinfo/commits

Reply via email to