summaryrefslogtreecommitdiff
path: root/plugins/ethernet.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-09-16 15:03:31 +0200
committerMarcel Holtmann <marcel@holtmann.org>2008-09-16 15:03:31 +0200
commit5ac584540591580d393ba5a136e949860ae86e75 (patch)
treeb6f25bed08c3e1c4f90b9a3ddca9efc4c4cf2450 /plugins/ethernet.c
parent99b5476272ab042a002ca6e636439e92a06f87e7 (diff)
downloadconnman-5ac584540591580d393ba5a136e949860ae86e75.tar.gz
connman-5ac584540591580d393ba5a136e949860ae86e75.tar.bz2
connman-5ac584540591580d393ba5a136e949860ae86e75.zip
Let the Ethernet plugin create network devices
Diffstat (limited to 'plugins/ethernet.c')
-rw-r--r--plugins/ethernet.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/plugins/ethernet.c b/plugins/ethernet.c
index 697149bb..b05c78bf 100644
--- a/plugins/ethernet.c
+++ b/plugins/ethernet.c
@@ -43,23 +43,6 @@ struct ethernet_data {
static GStaticMutex ethernet_mutex = G_STATIC_MUTEX_INIT;
static GSList *ethernet_list = NULL;
-static void create_element(struct connman_element *parent,
- enum connman_element_type type)
-{
- struct connman_element *element;
-
- DBG("parent %p name %s", parent, parent->name);
-
- element = connman_element_create(NULL);
- if (element == NULL)
- return;
-
- element->type = type;
- element->index = parent->index;
-
- connman_element_register(element, parent);
-}
-
static void rtnl_link(struct nlmsghdr *hdr, const char *type)
{
GSList *list;
@@ -76,6 +59,7 @@ static void rtnl_link(struct nlmsghdr *hdr, const char *type)
for (list = ethernet_list; list; list = list->next) {
struct connman_element *element = list->data;
+ struct connman_element *netdev;
struct ethernet_data *ethernet;
ethernet = connman_element_get_data(element);
@@ -94,8 +78,14 @@ static void rtnl_link(struct nlmsghdr *hdr, const char *type)
if (ethernet->flags & IFF_RUNNING) {
DBG("carrier on");
- create_element(element, CONNMAN_ELEMENT_TYPE_DHCP);
- create_element(element, CONNMAN_ELEMENT_TYPE_ZEROCONF);
+ netdev = connman_element_create(NULL);
+ if (netdev != NULL) {
+ netdev->type = CONNMAN_ELEMENT_TYPE_DEVICE;
+ netdev->subtype = CONNMAN_ELEMENT_SUBTYPE_NETWORK;
+ netdev->index = element->index;
+
+ connman_element_register(netdev, element);
+ }
} else {
DBG("carrier off");