summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-07-18 03:19:51 +0200
committerMarcel Holtmann <marcel@holtmann.org>2009-07-18 03:19:51 +0200
commitdb1d4ba89d173507cc599f89da944ae0d4426db7 (patch)
tree7fe5a3fe50f3efc8ecad9c14998e54daa0bee458
parent67a9fc2ba72df5544fdaa0f551a077b7130b1f44 (diff)
downloadconnman-db1d4ba89d173507cc599f89da944ae0d4426db7.tar.gz
connman-db1d4ba89d173507cc599f89da944ae0d4426db7.tar.bz2
connman-db1d4ba89d173507cc599f89da944ae0d4426db7.zip
Fix missing disarming of the connection timeout
-rw-r--r--src/service.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/service.c b/src/service.c
index b389b1cf..30ce1ebb 100644
--- a/src/service.c
+++ b/src/service.c
@@ -626,9 +626,6 @@ static DBusMessage *disconnect_service(DBusConnection *conn,
DBG("service %p", service);
- if (service->pending != NULL)
- reply_pending(service, ECONNABORTED);
-
service->ignore = TRUE;
err = __connman_service_disconnect(service);
@@ -754,10 +751,10 @@ static void service_free(gpointer user_data)
DBG("service %p", service);
- g_hash_table_remove(service_hash, service->identifier);
-
reply_pending(service, ENOENT);
+ g_hash_table_remove(service_hash, service->identifier);
+
service->path = NULL;
if (path != NULL) {
@@ -795,8 +792,6 @@ void __connman_service_put(struct connman_service *service)
iter = g_hash_table_lookup(service_hash, service->identifier);
if (iter != NULL) {
- reply_pending(service, ENOENT);
-
__connman_service_disconnect(service);
service->state = CONNMAN_SERVICE_STATE_FAILURE;
@@ -1108,6 +1103,8 @@ int __connman_service_disconnect(struct connman_service *service)
DBG("service %p", service);
+ reply_pending(service, ECONNABORTED);
+
if (service->network != NULL) {
err = __connman_network_disconnect(service->network);
} else if (service->device != NULL) {