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