diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2008-09-16 15:03:31 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2008-09-16 15:03:31 +0200 |
commit | 5ac584540591580d393ba5a136e949860ae86e75 (patch) | |
tree | b6f25bed08c3e1c4f90b9a3ddca9efc4c4cf2450 /plugins | |
parent | 99b5476272ab042a002ca6e636439e92a06f87e7 (diff) | |
download | connman-5ac584540591580d393ba5a136e949860ae86e75.tar.gz connman-5ac584540591580d393ba5a136e949860ae86e75.tar.bz2 connman-5ac584540591580d393ba5a136e949860ae86e75.zip |
Let the Ethernet plugin create network devices
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/ethernet.c | 28 |
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"); |