From: Daniel Wagner <[email protected]>

---
 src/session.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/src/session.c b/src/session.c
index 7d9fc8b..0adc44b 100644
--- a/src/session.c
+++ b/src/session.c
@@ -906,6 +906,15 @@ static void session_changed(struct connman_session 
*session,
                        break;
                }
 
+               /*
+                * We are not online, we are not connecting, that
+                * means we could still have a valid info->entry.
+                * Though something has changed from the service layer.
+                * Therefore we want to restart the algorithm. Before we
+                * can do that we have to cleanup a potientional old entry.
+                */
+               explicit_disconnect(session);
+
                if (info->reason == CONNMAN_SESSION_REASON_CONNECT) {
                        DBG("Retry to find a matching session");
                        /*
-- 
1.7.6

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

Reply via email to