diff options
author | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-02-20 10:49:48 +0200 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2013-02-21 16:22:40 +0200 |
commit | 5b15d266c4c89bcb677509d3e72c1d74e9eca969 (patch) | |
tree | bb7f79e56293986974f4475e9262bf4e57e033ff | |
parent | 421a69132e134c46ff6b0f6db28fd67879d8a715 (diff) | |
download | connman-5b15d266c4c89bcb677509d3e72c1d74e9eca969.tar.gz connman-5b15d266c4c89bcb677509d3e72c1d74e9eca969.tar.bz2 connman-5b15d266c4c89bcb677509d3e72c1d74e9eca969.zip |
client: Wait for a reply when removing service
-rw-r--r-- | client/services.c | 19 |
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); |