service: Allow setting path when sending pending dbus reply
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Tue, 14 Aug 2012 14:05:33 +0000 (17:05 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 15 Aug 2012 10:49:44 +0000 (13:49 +0300)
src/connman.h
src/network.c
src/service.c

index f2fcecc..89fe7db 100644 (file)
@@ -629,7 +629,8 @@ void __connman_service_set_hidden_data(struct connman_service *service,
                                gpointer user_data);
 void __connman_service_return_error(struct connman_service *service,
                                int error, gpointer user_data);
-void __connman_service_reply_dbus_pending(DBusMessage *pending, int error);
+void __connman_service_reply_dbus_pending(DBusMessage *pending, int error,
+                                       const char *path);
 
 int __connman_service_provision_changed(const char *ident);
 void __connman_service_set_config(struct connman_service *service,
index 31b0f97..df9f923 100644 (file)
@@ -1453,7 +1453,7 @@ void connman_network_clear_hidden(void *user_data)
         * error to the caller telling that we could not find
         * any network that we could connect to.
         */
-       __connman_service_reply_dbus_pending(user_data, EIO);
+       __connman_service_reply_dbus_pending(user_data, EIO, NULL);
 }
 
 int connman_network_connect_hidden(struct connman_network *network,
index 8edd056..c5fe023 100644 (file)
@@ -3425,7 +3425,8 @@ static void remove_timeout(struct connman_service *service)
        }
 }
 
-void __connman_service_reply_dbus_pending(DBusMessage *pending, int error)
+void __connman_service_reply_dbus_pending(DBusMessage *pending, int error,
+                                       const char *path)
 {
        if (pending != NULL) {
                if (error > 0) {
@@ -3435,10 +3436,11 @@ void __connman_service_reply_dbus_pending(DBusMessage *pending, int error)
                        if (reply != NULL)
                                g_dbus_send_message(connection, reply);
                } else {
-                       const char *sender, *path;
+                       const char *sender;
 
                        sender = dbus_message_get_interface(pending);
-                       path = dbus_message_get_path(pending);
+                       if (path == NULL)
+                               path = dbus_message_get_path(pending);
 
                        DBG("sender %s path %s", sender, path);
 
@@ -3460,7 +3462,8 @@ static void reply_pending(struct connman_service *service, int error)
        remove_timeout(service);
 
        if (service->pending != NULL) {
-               __connman_service_reply_dbus_pending(service->pending, error);
+               __connman_service_reply_dbus_pending(service->pending, error,
+                                               NULL);
                service->pending = NULL;
        }
 }