Browse Source

rtimer: add one new module parameter

Add default_interval to set the fire interval,
if interval not present inside timer string.
Stefan Mititelu 4 years ago
parent
commit
4368987be5
2 changed files with 24 additions and 1 deletions
  1. 19 0
      src/modules/rtimer/doc/rtimer_admin.xml
  2. 5 1
      src/modules/rtimer/rtimer_mod.c

+ 19 - 0
src/modules/rtimer/doc/rtimer_admin.xml

@@ -56,6 +56,25 @@
 	</section>
 	<section>
 	<title>Parameters</title>
+	<section>
+		<title><varname>default_interval</varname> (int)</title>
+		<para>
+			The definition of the default interval of timers (if not present on the "timer" parameter)
+		</para>
+		<para>
+			The parameter can be set multiple times to get different intervals in same configuration file.
+		</para>
+		<example>
+		<title>Set <varname>default_interval</varname> parameter</title>
+		<programlisting format="linespecific">
+...
+# default time interval set to 300 seconds
+modparam("rtimer", "default_interval", 300)
+...
+		</programlisting>
+		</example>
+	</section>
+
 	<section>
 		<title><varname>timer</varname> (str)</title>
 		<para>

+ 5 - 1
src/modules/rtimer/rtimer_mod.c

@@ -78,12 +78,15 @@ void stm_timer_exec(unsigned int ticks, int worker, void *param);
 void stm_main_timer_exec(unsigned int ticks, void *param);
 int stm_get_worker(struct sip_msg *msg, pv_param_t *param, pv_value_t *res);
 
+static int default_interval = 120;
+
 static pv_export_t rtimer_pvs[] = {
 	{{"rtimer_worker", (sizeof("rtimer_worker")-1)}, PVT_OTHER, stm_get_worker, 0,	0, 0, 0, 0},
 	{ {0, 0}, 0, 0, 0, 0, 0, 0, 0 }
 };
 
 static param_export_t params[]={
+	{"default_interval",       INT_PARAM, &default_interval},
 	{"timer",             PARAM_STRING|USE_FUNC_PARAM, (void*)stm_t_param},
 	{"exec",              PARAM_STRING|USE_FUNC_PARAM, (void*)stm_e_param},
 	{0,0,0}
@@ -294,7 +297,7 @@ int stm_t_param(modparam_t type, void *val)
 		return -1;
 	}
 	if(tmp.interval==0)
-		tmp.interval = 120;
+		tmp.interval = default_interval;
 
 	nt = (stm_timer_t*)pkg_malloc(sizeof(stm_timer_t));
 	if(nt==0)
@@ -307,6 +310,7 @@ int stm_t_param(modparam_t type, void *val)
 	nt->next = _stm_list;
 	_stm_list = nt;
 	free_params(params_list);
+	LM_INFO("created rtimer name=%.*s interval=%d mode=%d\n", tmp.name.len, tmp.name.s, tmp.interval, tmp.mode);
 	return 0;
 }