From a3a6fb3eaa61e32b3169398f481bcfafb7b7bf5f Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 20 Sep 2011 16:27:06 +0200 Subject: [PATCH] session: Pass session_info pointer into functions --- src/session.c | 39 ++++++++++++++++----------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/src/session.c b/src/session.c index 224e666..f577439 100644 --- a/src/session.c +++ b/src/session.c @@ -727,15 +727,13 @@ static connman_bool_t explicit_connect(enum connman_session_reason reason) return FALSE; } -static connman_bool_t explicit_disconnect(struct connman_session *session) +static connman_bool_t explicit_disconnect(struct session_info *info) { - struct session_info *info = session->info; - if (info->entry == NULL) return FALSE; - DBG("session %p, reason %s service %p state %d", - session, reason2string(info->entry->reason), + DBG("reason %s service %p state %d", + reason2string(info->entry->reason), info->entry->service, info->entry->state); if (info->entry->reason == CONNMAN_SESSION_REASON_UNKNOWN) @@ -778,16 +776,15 @@ static gboolean call_connect(gpointer user_data) return FALSE; } -static void deselect_service(struct connman_session *session) +static void deselect_service(struct session_info *info) { - struct session_info *info = session->info; struct connman_service *service; connman_bool_t disconnect, online; if (info->entry == NULL) return; - disconnect = explicit_disconnect(session); + disconnect = explicit_disconnect(info); online = is_connecting(info->entry->state) == TRUE || is_online(info->entry->state) == TRUE; @@ -805,14 +802,14 @@ static void deselect_service(struct connman_session *session) static void deselect_and_disconnect(struct connman_session *session) { - deselect_service(session); + struct session_info *info = session->info; + + deselect_service(info); } -static void select_online_service(struct connman_session *session, +static void select_online_service(struct session_info *info, struct service_entry *entry) { - struct session_info *info = session->info; - info->online = TRUE; info->entry = entry; @@ -824,19 +821,16 @@ static void select_online_service(struct connman_session *session, __connman_service_session_inc(info->entry->service); } -static void select_offline_service(struct connman_session *session, +static void select_offline_service(struct session_info *info, struct service_entry *entry) { - struct session_info *info = session->info; - if (explicit_connect(info->reason) == FALSE) { /* Don't select this service. It is not online and we * don't call connect on it. This happends for example * when the system is idle and we create a new session * which is in free ride mode. */ - - deselect_and_disconnect(session); + deselect_service(info); return; } @@ -849,16 +843,15 @@ static void select_offline_service(struct connman_session *session, g_timeout_add_seconds(0, call_connect, info->entry->service); } -static void select_service(struct connman_session *session, +static void select_service(struct session_info *info, struct service_entry *entry) { - DBG("session %p service %p", session, entry->service); - + DBG("service %p", entry->service); if (is_online(entry->state) == TRUE) - select_online_service(session, entry); + select_online_service(info, entry); else - select_offline_service(session, entry); + select_offline_service(info, entry); } static void select_and_connect(struct connman_session *session, @@ -884,7 +877,7 @@ static void select_and_connect(struct connman_session *session, case CONNMAN_SERVICE_STATE_ONLINE: case CONNMAN_SERVICE_STATE_IDLE: case CONNMAN_SERVICE_STATE_DISCONNECT: - select_service(session, entry); + select_service(info, entry); return; case CONNMAN_SERVICE_STATE_UNKNOWN: case CONNMAN_SERVICE_STATE_FAILURE: -- 2.7.4