device: Include Reason in Disconnect Skip Warning
[framework/connectivity/connman.git] / src / device.c
index 12e1460..a9f4330 100644 (file)
@@ -46,6 +46,7 @@ struct connman_device {
        char *address;
        char *interface;
        char *ident;
+       char *path;
        int phyindex;
        unsigned int connections;
        guint scan_timeout;
@@ -440,6 +441,7 @@ static void device_destruct(struct connman_element *element)
        g_free(device->name);
        g_free(device->address);
        g_free(device->interface);
+       g_free(device->path);
 
        g_free(device->last_network);
 
@@ -792,7 +794,7 @@ int __connman_device_disconnect(struct connman_device *device)
                         * will fail.  There is nothing to be gained by
                         * removing the network here anyway.
                         */
-                       connman_warn("Skipping disconnect of %s",
+                       connman_warn("Skipping disconnect of %s, network is connecting.",
                                connman_network_get_identifier(network));
                        continue;
                }
@@ -951,9 +953,14 @@ int connman_device_set_string(struct connman_device *device,
        } else if (g_str_equal(key, "Node") == TRUE) {
                g_free(device->node);
                device->node = g_strdup(value);
+       } else if (g_str_equal(key, "Path") == TRUE) {
+               g_free(device->path);
+               device->path = g_strdup(value);
+       } else {
+               return -EINVAL;
        }
 
-       return connman_element_set_string(&device->element, key, value);
+       return 0;
 }
 
 /**
@@ -976,8 +983,10 @@ const char *connman_device_get_string(struct connman_device *device,
                return device->node;
        else if (g_str_equal(key, "Interface") == TRUE)
                return device->interface;
+       else if (g_str_equal(key, "Path") == TRUE)
+               return device->path;
 
-       return connman_element_get_string(&device->element, key);
+       return NULL;
 }
 
 static void set_offlinemode(struct connman_element *element, gpointer user_data)