From: Daniel Wagner <[email protected]>
A session is always in the free-ride mode, which means we set the
session active. The connect request is expressed via setting
session->info->connect = true and triggering the auto connect.
---
src/session.c | 30 ++++++++++--------------------
1 file changed, 10 insertions(+), 20 deletions(-)
diff --git a/src/session.c b/src/session.c
index 554bc85..27e9648 100644
--- a/src/session.c
+++ b/src/session.c
@@ -405,13 +405,10 @@ static void free_session(struct connman_session *session)
static void cleanup_session_final(struct connman_session *session)
{
- struct session_info *info = session->info;
-
DBG("remove %s", session->session_path);
- if (info->connect)
- __connman_service_set_active_session(session, false,
- session->info->config.allowed_bearers);
+ __connman_service_set_active_session(session, false,
+ session->info->config.allowed_bearers);
g_slist_free(session->user_allowed_bearers);
@@ -946,11 +943,8 @@ static void trigger_disconnect(struct connman_session
*session)
if (!info->connect)
return;
- __connman_service_set_active_session(session, false,
- info->config.allowed_bearers);
-
+ __connman_service_auto_disconnect();
info->connect = false;
- info->state = CONNMAN_SESSION_STATE_DISCONNECTED;
}
static void trigger_connect(struct connman_session *session)
@@ -961,9 +955,6 @@ static void trigger_connect(struct connman_session *session)
return;
info->connect = true;
- __connman_service_set_active_session(session, true,
- info->config.allowed_bearers);
-
__connman_service_auto_connect();
}
@@ -998,15 +989,13 @@ int connman_session_config_update(struct connman_session
*session)
if (err < 0)
return err;
- if (info->connect)
- __connman_service_set_active_session(session, false,
+ __connman_service_set_active_session(session, false,
info->config.allowed_bearers);
g_slist_free(info->config.allowed_bearers);
info->config.allowed_bearers = allowed_bearers;
- if (info->connect)
- __connman_service_set_active_session(session, true,
+ __connman_service_set_active_session(session, true,
info->config.allowed_bearers);
info->config.type = apply_policy_on_type(
@@ -1097,8 +1086,7 @@ static DBusMessage *change_session(DBusConnection *conn,
if (err < 0)
return __connman_error_failed(msg, -err);
- if (info->connect)
- __connman_service_set_active_session(session,
+ __connman_service_set_active_session(session,
false,
info->config.allowed_bearers);
@@ -1113,8 +1101,7 @@ static DBusMessage *change_session(DBusConnection *conn,
if (err < 0)
return __connman_error_failed(msg, -err);
- if (info->connect)
- __connman_service_set_active_session(session,
+ __connman_service_set_active_session(session,
true,
info->config.allowed_bearers);
@@ -1291,6 +1278,9 @@ static int session_create_final(struct creation_data
*creation_data,
session->append_all = true;
+ __connman_service_set_active_session(session, true,
+ info->config.allowed_bearers);
+
session_notify(session);
cleanup_creation_data(creation_data);
--
1.8.4.474.g128a96c
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman