From: Daniel Wagner <[email protected]>
When a Session is destroyed, we have to check if we have
to disconnect the Session first.
---
src/session.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/src/session.c b/src/session.c
index 95b5407..d9da3c3 100644
--- a/src/session.c
+++ b/src/session.c
@@ -1205,6 +1205,8 @@ static void release_session(gpointer key, gpointer value,
gpointer user_data)
static int session_disconnect(struct connman_session *session)
{
+ struct session_info *info = session->info;
+
DBG("session %p, %s", session, session->owner);
if (session->notify_watch > 0)
@@ -1213,6 +1215,11 @@ static int session_disconnect(struct connman_session
*session)
g_dbus_unregister_interface(connection, session->session_path,
CONNMAN_SESSION_INTERFACE);
+ if (info->online == TRUE && info->entry != NULL &&
+ explicit_connect(info->entry->reason) == TRUE) {
+ test_and_disconnect(session);
+ }
+
g_hash_table_remove(session_hash, session->session_path);
return 0;
--
1.7.6
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman