Module: kamailio
Branch: master
Commit: 77b1b52fee7939ec1fcd04952d34649569c7233d
URL:
https://github.com/kamailio/kamailio/commit/77b1b52fee7939ec1fcd04952d34649…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2019-07-02T18:30:48+02:00
uac: new modparam reg_gc_interval
- defined value for garbage collection interval made configurable
- default value 150 (secs) - what was so far
---
Modified: src/modules/uac/uac.c
Modified: src/modules/uac/uac_reg.c
---
Diff:
https://github.com/kamailio/kamailio/commit/77b1b52fee7939ec1fcd04952d34649…
Patch:
https://github.com/kamailio/kamailio/commit/77b1b52fee7939ec1fcd04952d34649…
---
diff --git a/src/modules/uac/uac.c b/src/modules/uac/uac.c
index 53a1b13cdf..217d1628ab 100644
--- a/src/modules/uac/uac.c
+++ b/src/modules/uac/uac.c
@@ -107,6 +107,7 @@ static void mod_destroy(void);
static int child_init(int rank);
extern int reg_timer_interval;
+extern int _uac_reg_gc_interval;
static pv_export_t mod_pvs[] = {
{ {"uac_req", sizeof("uac_req")-1}, PVT_OTHER, pv_get_uac_req,
pv_set_uac_req,
@@ -170,6 +171,7 @@ static param_export_t params[] = {
{"reg_keep_callid", INT_PARAM, ®_keep_callid },
{"reg_random_delay", INT_PARAM, ®_random_delay },
{"reg_active", INT_PARAM, ®_active_param },
+ {"reg_gc_interval", INT_PARAM, &_uac_reg_gc_interval },
{0, 0, 0}
};
diff --git a/src/modules/uac/uac_reg.c b/src/modules/uac/uac_reg.c
index f75c7cf38a..dfc595f020 100644
--- a/src/modules/uac/uac_reg.c
+++ b/src/modules/uac/uac_reg.c
@@ -58,9 +58,10 @@
#define UAC_REG_INIT (1<<4) /* registration initialized */
#define MAX_UACH_SIZE 2048
-#define UAC_REG_GC_INTERVAL 150
#define UAC_REG_TM_CALLID_SIZE 90
+int _uac_reg_gc_interval = 150;
+
typedef struct _reg_uac
{
unsigned int h_uuid;
@@ -423,9 +424,10 @@ int uac_reg_ht_shift(void)
tn = time(NULL);
lock_get(_reg_htable_gc_lock);
- if(_reg_htable_gc->stime > tn-UAC_REG_GC_INTERVAL) {
+ if(_reg_htable_gc->stime > tn - _uac_reg_gc_interval) {
lock_release(_reg_htable_gc_lock);
- LM_ERR("shifting the memory table is not possible in less than %d secs\n",
UAC_REG_GC_INTERVAL);
+ LM_ERR("shifting in-memory table is not possible in less than %d secs\n",
+ _uac_reg_gc_interval);
return -1;
}
uac_reg_reset_ht_gc();
@@ -1224,7 +1226,7 @@ void uac_reg_timer(unsigned int ticks)
{
lock_get(_reg_htable_gc_lock);
if(_reg_htable_gc->stime!=0
- && _reg_htable_gc->stime < tn - UAC_REG_GC_INTERVAL)
+ && _reg_htable_gc->stime < tn - _uac_reg_gc_interval)
uac_reg_reset_ht_gc();
lock_release(_reg_htable_gc_lock);
}