summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2013-07-22 09:17:30 +0000
committerNanang Izzuddin <nanang@teluu.com>2013-07-22 09:17:30 +0000
commit73c8e1dc41d174012f42e3f665fc7dadb37fb239 (patch)
tree4eefd97c80906ea1c7a34e75d218cd7911c00969 /pjsip
parentaaef9cb9d469ffb94ef0694c7b47e521887a6679 (diff)
Misc (re #1630): Add randomizing interval for subscription refresh.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4572 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip-simple/evsub.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pjsip/src/pjsip-simple/evsub.c b/pjsip/src/pjsip-simple/evsub.c
index c393470c..aa2498c4 100644
--- a/pjsip/src/pjsip-simple/evsub.c
+++ b/pjsip/src/pjsip-simple/evsub.c
@@ -32,6 +32,7 @@
#include <pj/log.h>
#include <pj/os.h>
#include <pj/pool.h>
+#include <pj/rand.h>
#include <pj/string.h>
@@ -1749,6 +1750,10 @@ static void on_tsx_state_uac( pjsip_evsub *sub, pjsip_transaction *tsx,
unsigned timeout = (sub->expires->ivalue > TIME_UAC_REFRESH) ?
sub->expires->ivalue - TIME_UAC_REFRESH : sub->expires->ivalue;
+ /* Reduce timeout by about 1 - 10 secs (randomized) */
+ if (timeout > 10)
+ timeout += -10 + (pj_rand() % 10);
+
PJ_LOG(5,(sub->obj_name, "Will refresh in %d seconds",
timeout));
set_timer(sub, TIMER_TYPE_UAC_REFRESH, timeout);