Add skeleton for profile/service integration
authorMarcel Holtmann <marcel@holtmann.org>
Wed, 11 Mar 2009 18:44:43 +0000 (19:44 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Wed, 11 Mar 2009 18:44:43 +0000 (19:44 +0100)
src/connman.h
src/device.c
src/network.c
src/profile.c

index 729dc42..36d65ef 100644 (file)
@@ -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 <connman/network.h>
 
 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 <connman/rtnl.h>
 
 int __connman_rtnl_init(void);
index a354fe2..93a076f 100644 (file)
@@ -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)
index 8cda558..2618dad 100644 (file)
@@ -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)
index 44dcf55..f9d643c 100644 (file)
 
 #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";