diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-07-18 03:19:51 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-07-18 03:19:51 +0200 |
commit | db1d4ba89d173507cc599f89da944ae0d4426db7 (patch) | |
tree | 7fe5a3fe50f3efc8ecad9c14998e54daa0bee458 | |
parent | 67a9fc2ba72df5544fdaa0f551a077b7130b1f44 (diff) | |
download | connman-db1d4ba89d173507cc599f89da944ae0d4426db7.tar.gz connman-db1d4ba89d173507cc599f89da944ae0d4426db7.tar.bz2 connman-db1d4ba89d173507cc599f89da944ae0d4426db7.zip |
Fix missing disarming of the connection timeout
-rw-r--r-- | src/service.c | 11 |
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) { |