summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabrice Bellet <fabrice@bellet.info>2020-04-13 17:46:13 +0200
committerOlivier CrĂȘte <olivier.crete@collabora.com>2020-05-05 21:12:20 -0400
commitac3f7b5ec4ac3036d65a3990245ec5a046d68631 (patch)
treee92888ecb77072eb78fb0268f05a110e370c65ce
parent6dd3969404da66ee347313b7c9bd648579e7b9bb (diff)
downloadlibnice-ac3f7b5ec4ac3036d65a3990245ec5a046d68631.tar.gz
conncheck: honor the retransmit flag in case of role conflict
This other rare situation happens when a role conflict is detected by an stun reply message, on a component that already has a nominated pair with a higher priority. In that case, the retransmit flag should be honored, and the pair with "role conflict" should not be retransmitted.
-rw-r--r--agent/conncheck.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/agent/conncheck.c b/agent/conncheck.c
index 41d8c92..324c373 100644
--- a/agent/conncheck.c
+++ b/agent/conncheck.c
@@ -3784,6 +3784,12 @@ static gboolean priv_map_reply_to_conn_check_request (NiceAgent *agent, NiceStre
uint64_t tie;
gboolean controlled_mode;
+ if (!p->retransmit) {
+ nice_debug ("Agent %p : Role conflict with pair %p, not restarting",
+ agent, p);
+ return TRUE;
+ }
+
/* case: role conflict error, need to restart with new role */
nice_debug ("Agent %p : Role conflict with pair %p, restarting",
agent, p);