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
