From: Olivier CrĂȘte Date: Thu, 31 Jul 2014 19:16:38 +0000 (-0400) Subject: agent: Declare the stream to be CONNECTED only if a pair is selected X-Git-Tag: 0.1.8~23 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fcb1b84fd81f7db7dfe25bad824cb7fcfb254469;p=platform%2Fupstream%2Flibnice.git agent: Declare the stream to be CONNECTED only if a pair is selected Don't change the state if no pair is selected. Otherwise we get a component that claims to be CONNECTED but has no selected pair. Also, set the selected pair before announcing the state change. --- diff --git a/agent/conncheck.c b/agent/conncheck.c index 3722947..0fcfb16 100644 --- a/agent/conncheck.c +++ b/agent/conncheck.c @@ -2369,20 +2369,20 @@ static gboolean priv_map_reply_to_conn_check_request (NiceAgent *agent, Stream * if (!ok_pair) ok_pair = p; - /* Do not step down to CONNECTED if we're already at state READY*/ - if (component->state != NICE_COMPONENT_STATE_READY) { - /* step: notify the client of a new component state (must be done - * before the possible check list state update step */ - agent_signal_component_state_change (agent, - stream->id, component->id, NICE_COMPONENT_STATE_CONNECTED); - } - - /* step: updating nominated flag (ICE 7.1.2.2.4 "Updating the Nominated Flag" (ID-19) */ - if (ok_pair->nominated == TRUE) + if (ok_pair->nominated == TRUE) { priv_update_selected_pair (agent, component, ok_pair); + /* Do not step down to CONNECTED if we're already at state READY*/ + if (component->state != NICE_COMPONENT_STATE_READY) { + /* step: notify the client of a new component state (must be done + * before the possible check list state update step */ + agent_signal_component_state_change (agent, + stream->id, component->id, NICE_COMPONENT_STATE_CONNECTED); + } + } + /* step: update pair states (ICE 7.1.2.2.3 "Updating pair states" and 8.1.2 "Updating States", ID-19) */ priv_update_check_list_state_for_ready (agent, stream, component);