summaryrefslogtreecommitdiff
path: root/client/services.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2013-02-20 10:49:48 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2013-02-21 16:22:40 +0200
commit5b15d266c4c89bcb677509d3e72c1d74e9eca969 (patch)
treebb7f79e56293986974f4475e9262bf4e57e033ff /client/services.c
parent421a69132e134c46ff6b0f6db28fd67879d8a715 (diff)
downloadconnman-5b15d266c4c89bcb677509d3e72c1d74e9eca969.tar.gz
connman-5b15d266c4c89bcb677509d3e72c1d74e9eca969.tar.bz2
connman-5b15d266c4c89bcb677509d3e72c1d74e9eca969.zip
client: Wait for a reply when removing service
Diffstat (limited to 'client/services.c')
-rw-r--r--client/services.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/client/services.c b/client/services.c
index c69a3dea..b6d6775e 100644
--- a/client/services.c
+++ b/client/services.c
@@ -585,18 +585,12 @@ int set_service_property(DBusConnection *connection, DBusMessage *message,
int remove_service(DBusConnection *connection, DBusMessage *message,
char *name)
{
- struct service_data service;
DBusMessage *message_send;
const char *path_name;
char *path;
+ DBusError err;
- path_name = find_service(connection, message, name, &service);
- if (path_name == NULL)
- return -ENXIO;
-
- if (service.favorite == FALSE)
- return 0;
-
+ path_name = strip_service_path(name);
path = g_strdup_printf("/net/connman/service/%s", path_name);
message_send = dbus_message_new_method_call(CONNMAN_SERVICE, path,
CONNMAN_SERVICE_INTERFACE,
@@ -606,7 +600,14 @@ int remove_service(DBusConnection *connection, DBusMessage *message,
return -ENOMEM;
}
- dbus_connection_send(connection, message_send, NULL);
+ dbus_error_init(&err);
+ dbus_connection_send_with_reply_and_block(connection, message_send,
+ -1, &err);
+ if (dbus_error_is_set(&err) == TRUE) {
+ printf("Error '%s' %s\n", path, err.message);
+ dbus_error_free(&err);
+ }
+
dbus_message_unref(message_send);
g_free(path);