In case of cancelling the connection, idle will be set, but we might be
in the middle of a connection so ensuring it properly cleans via calling
disconnect.
---
 src/peer.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/peer.c b/src/peer.c
index 33364e2..55531ce 100644
--- a/src/peer.c
+++ b/src/peer.c
@@ -815,6 +815,8 @@ int connman_peer_set_state(struct connman_peer *peer,
        case CONNMAN_PEER_STATE_UNKNOWN:
                return -EINVAL;
        case CONNMAN_PEER_STATE_IDLE:
+               if (is_connecting(peer) || is_connected(peer))
+                       return peer_disconnect(peer);
                peer->sub_device = NULL;
                break;
        case CONNMAN_PEER_STATE_ASSOCIATION:
-- 
1.8.5.5

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

Reply via email to