]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
set minimum initital sip t1 timer to 1000ms to work around race condition on retry...
authorMichael Jerris <mike@jerris.com>
Wed, 3 Nov 2010 17:57:59 +0000 (13:57 -0400)
committerMichael Jerris <mike@jerris.com>
Wed, 3 Nov 2010 17:58:12 +0000 (13:58 -0400)
libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/nta/nta.c

index 5e1bb2ba7b884f4e478bff44c68e5e764268f3eb..aacfc996d391953c01ede21014901fc4090ccc4a 100644 (file)
@@ -1 +1 @@
-Wed Nov  3 11:46:27 EDT 2010
+Wed Nov  3 13:53:34 EDT 2010
index 7d3280fef61ecebe0c6371d79472ef03ab18b0a3..f77cdd3afa66ad9101a3d8cf77b7276f5ec87682 100644 (file)
@@ -8176,9 +8176,12 @@ outgoing_send(nta_outgoing_t *orq, int retransmit)
 
   if (orq->orq_method == sip_method_ack)
     ;
-  else if (!orq->orq_reliable)
-    outgoing_set_timer(orq, agent->sa_t1); /* Timer A/E */
-  else if (orq->orq_try_tcp_instead && !tport_is_connected(tp))
+  else if (!orq->orq_reliable) {
+    /* race condition on initial t1 timer timeout, set minimum initial timeout to 1000ms */
+       unsigned t1_timer = agent->sa_t1;
+       if (t1_timer < 1000) t1_timer = 1000;
+    outgoing_set_timer(orq, t1_timer); /* Timer A/E */
+  } else if (orq->orq_try_tcp_instead && !tport_is_connected(tp))
     outgoing_set_timer(orq, agent->sa_t4); /* Timer N3 */
 }