From: Daniel Wagner Date: Wed, 21 Sep 2011 08:53:12 +0000 (+0200) Subject: session: Move info->online update code to session_changed() X-Git-Tag: 0.78~188 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa2188d64d5a133f46cca6deefb8f32687fd8ae9;p=platform%2Fupstream%2Fconnman.git session: Move info->online update code to session_changed() service_state_changed() should only update the service states. session_changed() takes care of all session settings. --- diff --git a/src/session.c b/src/session.c index 0930569..56682cf 100644 --- a/src/session.c +++ b/src/session.c @@ -906,6 +906,12 @@ static void session_changed(struct connman_session *session, DBG("session %p trigger %s reason %s", session, trigger2string(trigger), reason2string(info->reason)); + if (info->entry != NULL) { + info->online = is_online(info->entry->state); + if (info_last->online != info->online) + session->info_dirty = TRUE; + } + switch (trigger) { case CONNMAN_SESSION_TRIGGER_UNKNOWN: DBG("ignore session changed event"); @@ -1674,32 +1680,21 @@ static void service_state_changed(struct connman_service *service, { GHashTableIter iter; gpointer key, value; - struct connman_session *session; - struct session_info *info, *info_last; DBG("service %p state %d", service, state); g_hash_table_iter_init(&iter, session_hash); while (g_hash_table_iter_next(&iter, &key, &value) == TRUE) { + struct connman_session *session = value; GSequenceIter *service_iter; - session = value; - info = session->info; - info_last = session->info_last; - service_iter = g_hash_table_lookup(session->service_hash, service); if (service_iter != NULL) { struct service_entry *entry; entry = g_sequence_get(service_iter); entry->state = state; - - if (info->entry == entry) { - info->online = is_online(entry->state); - if (info_last->online != info->online) - session->info_dirty = TRUE; - } } session_changed(session,