From 925e46442d09bccaec4e5077011eb2c45189a3e2 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 11 Mar 2009 19:44:43 +0100 Subject: [PATCH] Add skeleton for profile/service integration --- src/connman.h | 6 ++++++ src/device.c | 20 ++++++++++++++++++++ src/network.c | 4 ++++ src/profile.c | 28 ++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+) diff --git a/src/connman.h b/src/connman.h index 729dc42..36d65ef 100644 --- a/src/connman.h +++ b/src/connman.h @@ -179,6 +179,9 @@ connman_bool_t __connman_device_has_driver(struct connman_device *device); int __connman_device_set_offlinemode(connman_bool_t offlinemode); +int __connman_profile_add_device(struct connman_device *device); +int __connman_profile_remove_device(struct connman_device *device); + #include int __connman_network_init(void); @@ -191,6 +194,9 @@ int __connman_network_disconnect(struct connman_network *network); connman_bool_t __connman_network_has_driver(struct connman_network *network); +int __connman_profile_add_network(struct connman_network *network); +int __connman_profile_remove_network(struct connman_network *network); + #include int __connman_rtnl_init(void); diff --git a/src/device.c b/src/device.c index a354fe2..93a076f 100644 --- a/src/device.c +++ b/src/device.c @@ -645,6 +645,16 @@ static int setup_device(struct connman_device *device) return err; } + switch (device->mode) { + case CONNMAN_DEVICE_MODE_UNKNOWN: + case CONNMAN_DEVICE_MODE_NETWORK_SINGLE: + case CONNMAN_DEVICE_MODE_NETWORK_MULTIPLE: + break; + case CONNMAN_DEVICE_MODE_TRANSPORT_IP: + __connman_profile_add_device(device); + break; + } + device_enable(device); return 0; @@ -679,6 +689,16 @@ static void remove_device(struct connman_device *device) device_disable(device); + switch (device->mode) { + case CONNMAN_DEVICE_MODE_UNKNOWN: + case CONNMAN_DEVICE_MODE_NETWORK_SINGLE: + case CONNMAN_DEVICE_MODE_NETWORK_MULTIPLE: + break; + case CONNMAN_DEVICE_MODE_TRANSPORT_IP: + __connman_profile_remove_device(device); + break; + } + unregister_interface(&device->element); if (device->driver->remove) diff --git a/src/network.c b/src/network.c index 8cda558..2618dad 100644 --- a/src/network.c +++ b/src/network.c @@ -1062,6 +1062,8 @@ static int network_probe(struct connman_element *element) return err; } + __connman_profile_add_network(network); + return 0; } @@ -1077,6 +1079,8 @@ static void network_remove(struct connman_element *element) if (network->driver == NULL) return; + __connman_profile_remove_network(network); + unregister_interface(element); if (network->driver->remove) diff --git a/src/profile.c b/src/profile.c index 44dcf55..f9d643c 100644 --- a/src/profile.c +++ b/src/profile.c @@ -28,6 +28,34 @@ #include "connman.h" +int __connman_profile_add_device(struct connman_device *device) +{ + DBG("device %p", device); + + return 0; +} + +int __connman_profile_remove_device(struct connman_device *device) +{ + DBG("device %p", device); + + return 0; +} + +int __connman_profile_add_network(struct connman_network *network) +{ + DBG("network %p", network); + + return 0; +} + +int __connman_profile_remove_network(struct connman_network *network) +{ + DBG("network %p", network); + + return 0; +} + void __connman_profile_list(DBusMessageIter *iter) { const char *path = "/profile/default"; -- 2.7.4