From: Daniel Wagner Date: Tue, 20 Sep 2011 14:24:01 +0000 (+0200) Subject: session: Remove deselect_previous_service() X-Git-Tag: 2.0_alpha~1084 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=12a224e7c3aee9669f0ddece6f98ab47ee2a6473;p=framework%2Fconnectivity%2Fconnman.git session: Remove deselect_previous_service() The deselect_and_disconnect() function should be called from session_changed() and not in the select_and_connect() code path. All disconnect and connect decision are initiate from session_changed(). This makes the code flow more symetric. Note that we break here a Online -> Offline transision, we are going to fix this later again. --- diff --git a/src/session.c b/src/session.c index a06c014..224e666 100644 --- a/src/session.c +++ b/src/session.c @@ -778,7 +778,7 @@ static gboolean call_connect(gpointer user_data) return FALSE; } -static void deselect_and_disconnect(struct connman_session *session) +static void deselect_service(struct connman_session *session) { struct session_info *info = session->info; struct connman_service *service; @@ -803,13 +803,9 @@ static void deselect_and_disconnect(struct connman_session *session) g_timeout_add_seconds(0, call_disconnect, service); } -static void deselect_previous_service(struct connman_session *session, - struct service_entry *entry) +static void deselect_and_disconnect(struct connman_session *session) { - struct session_info *info = session->info; - - if (info->entry != NULL && info->entry != entry) - deselect_and_disconnect(session); + deselect_service(session); } static void select_online_service(struct connman_session *session, @@ -858,7 +854,6 @@ static void select_service(struct connman_session *session, { DBG("session %p service %p", session, entry->service); - deselect_previous_service(session, entry); if (is_online(entry->state) == TRUE) select_online_service(session, entry);