From 00762852ce32ff3c639241cb247290a1a5c76007 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 5 Dec 2008 22:41:48 +0100 Subject: [PATCH] Use separate enable/disable callbacks --- plugins/ethernet.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/plugins/ethernet.c b/plugins/ethernet.c index d6861f8..bd2ddc2 100644 --- a/plugins/ethernet.c +++ b/plugins/ethernet.c @@ -193,8 +193,6 @@ static int ethernet_probe(struct connman_element *element) ethernet->index = element->index; - iface_up(ethernet); - connman_rtnl_send_getlink(); return 0; @@ -208,19 +206,41 @@ static void ethernet_remove(struct connman_element *element) connman_element_set_data(element, NULL); - iface_down(ethernet); - ethernet_list = g_slist_remove(ethernet_list, element); g_free(ethernet); } +static int ethernet_enable(struct connman_element *element) +{ + struct ethernet_data *ethernet = connman_element_get_data(element); + + DBG("element %p name %s", element, element->name); + + iface_up(ethernet); + + return 0; +} + +static int ethernet_disable(struct connman_element *element) +{ + struct ethernet_data *ethernet = connman_element_get_data(element); + + DBG("element %p name %s", element, element->name); + + iface_down(ethernet); + + return 0; +} + static struct connman_driver ethernet_driver = { .name = "ethernet", .type = CONNMAN_ELEMENT_TYPE_DEVICE, .subtype = CONNMAN_ELEMENT_SUBTYPE_ETHERNET, .probe = ethernet_probe, .remove = ethernet_remove, + .enable = ethernet_enable, + .disable = ethernet_disable, }; static int ethernet_init(void) -- 2.7.4