Marcel: In order to convenient the review and merge, I split the auto-connection patch into 4 small patches. Please review.
>From e6ce9cb481fd1fd108ce19e1cebef39a47d4ea46 Mon Sep 17 00:00:00 2001 From: Martin Xu <[email protected]> Date: Mon, 6 Jul 2009 01:17:39 -0400 Subject: [PATCH 1/4] add check READY state at connect_timeout function at service.c --- src/service.c | 26 +++++++++++++++++++++----- 1 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/service.c b/src/service.c index 0b435a3..71e57de 100644 --- a/src/service.c +++ b/src/service.c @@ -425,8 +425,27 @@ static gboolean connect_timeout(gpointer user_data) service->timeout = 0; - if (service->network != NULL) - __connman_network_disconnect(service->network); + if (service->network != NULL) { + if (connman_network_get_connected(service->network)) { + __connman_service_indicate_state(service, + CONNMAN_SERVICE_STATE_READY); + service->pending = NULL; + } else { + __connman_network_disconnect(service->network); + __connman_service_indicate_state(service, + CONNMAN_SERVICE_STATE_FAILURE); + } + } else if (service->device != NULL) { + if (!connman_device_get_disconnected(service->device)) { + __connman_service_indicate_state(service, + CONNMAN_SERVICE_STATE_READY); + service->pending = NULL; + } else { + __connman_device_disconnect(service->device); + __connman_service_indicate_state(service, + CONNMAN_SERVICE_STATE_FAILURE); + } + } if (service->pending != NULL) { DBusMessage *reply; @@ -437,9 +456,6 @@ static gboolean connect_timeout(gpointer user_data) dbus_message_unref(service->pending); service->pending = NULL; - - __connman_service_indicate_state(service, - CONNMAN_SERVICE_STATE_FAILURE); } return FALSE; -- 1.6.1.3 _______________________________________________ connman mailing list [email protected] http://lists.connman.net/listinfo/connman
