[Freeswitch-svn] [commit] r11861 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/nua

FreeSWITCH SVN mikej at freeswitch.org
Wed Feb 11 09:21:00 PST 2009


Author: mikej
Date: Wed Feb 11 11:20:59 2009
New Revision: 11861

Log:
Wed Jan 28 12:32:01 CST 2009  Mikhail Zabaluev <mikhail.zabaluev at nokia.com>
  * nua/outbound.c: calculate the keepalive timer interval with regard to the maximum defer interval
    
  The point is not to miss the keepalive deadlines.
  


Modified:
   freeswitch/trunk/libs/sofia-sip/.update
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c

Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update	(original)
+++ freeswitch/trunk/libs/sofia-sip/.update	Wed Feb 11 11:20:59 2009
@@ -1 +1 @@
-Wed Feb 11 11:19:42 CST 2009
+Wed Feb 11 11:20:46 CST 2009

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/outbound.c	Wed Feb 11 11:20:59 2009
@@ -685,8 +685,16 @@
     su_timer_destroy(ob->ob_keepalive.timer), ob->ob_keepalive.timer = NULL;
 
   if (interval) {
+    su_duration_t max_defer;
+
+    max_defer = su_root_get_max_defer(ob->ob_root);
+    if ((su_duration_t)interval >= max_defer) {
+      interval -= max_defer - 100;
+    }
+
     ob->ob_keepalive.timer =
       su_timer_create(su_root_task(ob->ob_root), interval);
+
     su_timer_deferrable(ob->ob_keepalive.timer, 1);
   }
 



More information about the Freeswitch-svn mailing list