From: Patrik Flykt <[email protected]>
Check that at least some service is connected before attempting
to connect a proviver/VPN service.
---
src/session.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/src/session.c b/src/session.c
index e266190..8376bf7 100644
--- a/src/session.c
+++ b/src/session.c
@@ -808,6 +808,7 @@ static void select_and_connect(struct connman_session
*session,
struct service_entry *entry = NULL;
GSequenceIter *iter;
connman_bool_t do_connect = FALSE;
+ connman_bool_t connected = connman_service_connected_network();
DBG("session %p reason %s", session, reason2string(reason));
@@ -825,6 +826,13 @@ static void select_and_connect(struct connman_session
*session,
break;
case CONNMAN_SERVICE_STATE_IDLE:
case CONNMAN_SERVICE_STATE_DISCONNECT:
+ if (connman_service_get_type(entry->service) ==
+ CONNMAN_SERVICE_TYPE_VPN &&
+ connected == FALSE) {
+ entry = NULL;
+ break;
+ }
+
if (explicit_connect(reason) == TRUE)
do_connect = TRUE;
break;
--
1.7.2.5
_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman