]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Wed Jan 28 12:32:01 CST 2009 Mikhail Zabaluev <mikhail.zabaluev@nokia.com>
authorMichael Jerris <mike@jerris.com>
Wed, 11 Feb 2009 17:20:59 +0000 (17:20 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 11 Feb 2009 17:20:59 +0000 (17:20 +0000)
  * nua/outbound.c: calculate the keepalive timer interval with regard to the maximum defer interval

  The point is not to miss the keepalive deadlines.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11861 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/nua/outbound.c

index fbeadfbc8cafafbe1b9ebdc6d936c21c2c8dc035..2b50a09ed9f4508110ea48f18188b5d2fada36e1 100644 (file)
@@ -1 +1 @@
-Wed Feb 11 11:19:42 CST 2009
+Wed Feb 11 11:20:46 CST 2009
index 1e518f9fc52f5a9628ef4f49f9373f05e231f86c..3141629749255adb90cd3f76117e8a97d31bab12 100644 (file)
@@ -685,8 +685,16 @@ void outbound_start_keepalive(outbound_t *ob,
     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);
   }