From: Daniel Wagner <[email protected]>

Fixes BMC#22827
---
 src/session.c |    7 +++++--
 1 files 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);
 }
 
-- 
1.7.6

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to