Add functions for handling unique device identifiers
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 23 Apr 2009 13:37:13 +0000 (14:37 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 23 Apr 2009 13:37:13 +0000 (14:37 +0100)
include/device.h
src/connman.h
src/device.c
src/network.c

index a3a1d4a..17a2a0c 100644 (file)
@@ -81,6 +81,9 @@ extern void connman_device_set_interface(struct connman_device *device,
                                                        const char *interface);
 extern const char *connman_device_get_interface(struct connman_device *device);
 
+extern void connman_device_set_ident(struct connman_device *device,
+                                                       const char *ident);
+
 extern void connman_device_set_policy(struct connman_device *device,
                                        enum connman_device_policy policy);
 extern void connman_device_set_mode(struct connman_device *device,
index f2c26ae..b941185 100644 (file)
@@ -188,6 +188,7 @@ int __connman_device_disconnect(struct connman_device *device);
 connman_bool_t __connman_device_has_driver(struct connman_device *device);
 
 const char *__connman_device_get_type(struct connman_device *device);
+const char *__connman_device_get_ident(struct connman_device *device);
 
 int __connman_device_set_offlinemode(connman_bool_t offlinemode);
 
@@ -208,6 +209,7 @@ connman_bool_t __connman_network_has_driver(struct connman_network *network);
 
 const char *__connman_network_get_type(struct connman_network *network);
 const char *__connman_network_get_group(struct connman_network *network);
+const char *__connman_network_get_ident(struct connman_network *network);
 
 int __connman_profile_add_network(struct connman_network *network);
 int __connman_profile_remove_network(struct connman_network *network);
index 13684ee..df7e7fb 100644 (file)
@@ -45,6 +45,7 @@ struct connman_device {
        char *node;
        char *address;
        char *interface;
+       char *ident;
        unsigned int connections;
        guint scan_timeout;
 
@@ -933,6 +934,7 @@ static void device_destruct(struct connman_element *element)
 
        DBG("element %p name %s", element, element->name);
 
+       g_free(device->ident);
        g_free(device->node);
        g_free(device->name);
        g_free(device->address);
@@ -1147,6 +1149,25 @@ const char *connman_device_get_interface(struct connman_device *device)
 }
 
 /**
+ * connman_device_set_ident:
+ * @device: device structure
+ * @ident: unique identifier
+ *
+ * Set unique identifier of device
+ */
+void connman_device_set_ident(struct connman_device *device,
+                                                       const char *ident)
+{
+       g_free(device->ident);
+       device->ident = g_strdup(ident);
+}
+
+const char *__connman_device_get_ident(struct connman_device *device)
+{
+       return device->ident;
+}
+
+/**
  * connman_device_set_policy:
  * @device: device structure
  * @policy: power and connection policy
index 7375d7f..6c37eac 100644 (file)
@@ -610,6 +610,14 @@ const char *__connman_network_get_group(struct connman_network *network)
        return network->group;
 }
 
+const char *__connman_network_get_ident(struct connman_network *network)
+{
+       if (network->device == NULL)
+               return NULL;
+
+       return __connman_device_get_ident(network->device);
+}
+
 /**
  * connman_network_set_available:
  * @network: network structure