From 586a433223731fbe2782f088e7ec729d17ccdbff Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Wed, 14 Sep 2011 15:54:38 +0200 Subject: [PATCH] session: Only disconnect online sevices Fixes BMC#22827 --- src/session.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/session.c b/src/session.c index 187db48..45770ed 100644 --- a/src/session.c +++ b/src/session.c @@ -782,13 +782,16 @@ static void test_and_disconnect(struct connman_session *session) { struct session_info *info = session->info; struct connman_service *service; - connman_bool_t disconnect; + connman_bool_t disconnect, online; if (info->entry == NULL) return; disconnect = explicit_disconnect(session); + online = is_connecting(info->entry->state) == TRUE || + is_online(info->entry->state) == TRUE; + info->online = FALSE; info->reason = CONNMAN_SESSION_REASON_UNKNOWN; info->entry->reason = CONNMAN_SESSION_REASON_UNKNOWN; @@ -796,7 +799,7 @@ static void test_and_disconnect(struct connman_session *session) service = info->entry->service; info->entry = NULL; - if (disconnect == TRUE) + if (disconnect == TRUE && online == TRUE) g_timeout_add_seconds(0, call_disconnect, service); } -- 2.7.4