From: Daniel Wagner Date: Wed, 14 Sep 2011 13:54:38 +0000 (+0200) Subject: session: Only disconnect online sevices X-Git-Tag: 0.78~222 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=586a433223731fbe2782f088e7ec729d17ccdbff;p=platform%2Fupstream%2Fconnman.git session: Only disconnect online sevices Fixes BMC#22827 --- 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); }