From: Daniel Wagner <[email protected]>
---
src/session.c | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/src/session.c b/src/session.c
index f12f0fd..c202997 100644
--- a/src/session.c
+++ b/src/session.c
@@ -752,6 +752,25 @@ static connman_bool_t is_connected(enum
connman_service_state state)
return FALSE;
}
+static connman_bool_t is_connecting(enum connman_service_state state)
+{
+ switch (state) {
+ case CONNMAN_SERVICE_STATE_UNKNOWN:
+ case CONNMAN_SERVICE_STATE_IDLE:
+ break;
+ case CONNMAN_SERVICE_STATE_ASSOCIATION:
+ case CONNMAN_SERVICE_STATE_CONFIGURATION:
+ return TRUE;
+ case CONNMAN_SERVICE_STATE_DISCONNECT:
+ case CONNMAN_SERVICE_STATE_FAILURE:
+ case CONNMAN_SERVICE_STATE_READY:
+ case CONNMAN_SERVICE_STATE_ONLINE:
+ break;
+ }
+
+ return FALSE;
+}
+
static connman_bool_t explicit_connect(enum connman_session_reason reason)
{
switch (reason) {
@@ -922,6 +941,11 @@ static void session_changed(struct connman_session
*session,
if (info->online == TRUE)
break;
+ if (info->entry != NULL &&
+ is_connecting(info->entry->state) == TRUE) {
+ break;
+ }
+
if (info->stay_connected == TRUE) {
DBG("StayConnected");
select_and_connect(session,
--
1.7.6
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman