Commit 6a512b6e authored by Fabrice Bellet's avatar Fabrice Bellet Committed by Olivier Crête

conncheck: try to change earlier to state ready

We check if we can move from state connected to ready just
after a pair expired its retransmission count. This pair
will be marked failed, and will no longer be in-progress.
The number of in-progress dropping down to zero is one
of the conditions needed to make the transition to ready,
per component (and not globally as it's the case in other
locations where this check function is called).

Differential Revision: https://phabricator.freedesktop.org/D1117
parent 8fa648a1
......@@ -626,6 +626,7 @@ static gboolean priv_conn_check_tick_stream (NiceStream *stream, NiceAgent *agen
case STUN_USAGE_TIMER_RETURN_TIMEOUT:
{
gchar tmpbuf1[INET6_ADDRSTRLEN], tmpbuf2[INET6_ADDRSTRLEN];
NiceComponent *component;
/* case: conncheck cancelled due to in-progress incoming
* check, requeing the pair, ICE spec, sect 7.2.1.4
......@@ -646,6 +647,16 @@ static gboolean priv_conn_check_tick_stream (NiceStream *stream, NiceAgent *agen
priv_print_conn_check_lists (agent, G_STRFUNC,
", retransmission failed");
/* perform a check if a transition state from connected to
* ready can be performed. This may happen here, when the last
* in-progress pair has expired its retransmission count
* in priv_conn_check_tick_stream(), which is a condition to
* make the transition connected to ready.
*/
if (agent_find_component (agent, p->stream_id, p->component_id,
NULL, &component))
priv_update_check_list_state_for_ready (agent, stream,
component);
break;
}
case STUN_USAGE_TIMER_RETURN_RETRANSMIT:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment