From 409f346fbf0cc54c04682fdb8982a76e1ce53b21 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Thu, 25 Apr 2013 14:47:49 +0300 Subject: device: Add support functions needed by ethernet tethering --- src/device.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'src/device.c') diff --git a/src/device.c b/src/device.c index 2e0dbdca..5feeee12 100644 --- a/src/device.c +++ b/src/device.c @@ -647,6 +647,36 @@ int __connman_device_disconnect(struct connman_device *device) return 0; } +int connman_device_disconnect_service(struct connman_device *device) +{ + DBG("device %p", device); + + device->reconnect = FALSE; + + if (device->network) { + struct connman_service *service = + connman_service_lookup_from_network(device->network); + + if (service != NULL) + __connman_service_disconnect(service); + else + connman_network_set_connected(device->network, FALSE); + } + + return 0; +} + +int connman_device_reconnect_service(struct connman_device *device) +{ + DBG("device %p", device); + + device->reconnect = TRUE; + + __connman_service_auto_connect(); + + return 0; +} + static void mark_network_available(gpointer key, gpointer value, gpointer user_data) { @@ -1035,6 +1065,19 @@ struct connman_device *__connman_device_find_device( return NULL; } +struct connman_device *connman_device_find_by_index(int index) +{ + GSList *list; + + for (list = device_list; list != NULL; list = list->next) { + struct connman_device *device = list->data; + if (device->index == index) + return device; + } + + return NULL; +} + /** * connman_device_set_regdom * @device: device structure -- cgit v1.2.3