Hi Marcel: The auto-scan should not be triggered when user manually connecting a service. So if there is pending service, the auto-scan will be stopped.
>From dbd9237458a4051881c0d0844500eac4c837cf20 Mon Sep 17 00:00:00 2001 From: Martin Xu <[email protected]> Date: Wed, 8 Jul 2009 07:13:58 -0400 Subject: [PATCH 2/5] do not auto-connect when service is pending --- src/service.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/src/service.c b/src/service.c index 06e8551..ca7c1d3 100644 --- a/src/service.c +++ b/src/service.c @@ -435,6 +435,20 @@ static connman_bool_t is_connecting(struct connman_service *service) return FALSE; } +static struct connman_service *find_pending_service(void) +{ + GSequenceIter *iter; + struct connman_service *service; + iter = g_sequence_get_begin_iter(service_list); + while (g_sequence_iter_is_end(iter) == FALSE) { + service = g_sequence_get(iter); + if (service->pending != NULL) + return service; + iter = g_sequence_iter_next(iter); + } + return NULL; +} + static void __connman_service_auto_connect(void) { struct connman_service *service; @@ -442,6 +456,12 @@ static void __connman_service_auto_connect(void) DBG(""); + service = find_pending_service(); + if (service != NULL) { + DBG("find pending service: %p", service); + return; + } + iter = g_sequence_get_begin_iter(service_list); if (g_sequence_iter_is_end(iter) == TRUE) return; -- 1.6.1.3 _______________________________________________ connman mailing list [email protected] http://lists.connman.net/listinfo/connman
