|
@@ -358,7 +358,8 @@ static unsigned int raw_ip = 0;
|
|
|
static unsigned short raw_port = 0;
|
|
|
static int nh_keepalive_timeout = 0;
|
|
|
static request_method_t sipping_method_id = 0;
|
|
|
-
|
|
|
+/* filter contacts by server_id */
|
|
|
+static int nh_filter_srvid = 0;
|
|
|
|
|
|
/*0-> disabled, 1 ->enabled*/
|
|
|
unsigned int *natping_state=0;
|
|
@@ -426,6 +427,7 @@ static param_export_t params[] = {
|
|
|
{"keepalive_timeout", INT_PARAM, &nh_keepalive_timeout },
|
|
|
{"udpping_from_path", INT_PARAM, &udpping_from_path },
|
|
|
{"append_sdp_oldmediaip", INT_PARAM, &sdp_oldmediaip },
|
|
|
+ {"filter_server_id", INT_PARAM, &nh_filter_srvid },
|
|
|
|
|
|
{0, 0, 0}
|
|
|
};
|
|
@@ -2067,6 +2069,7 @@ nh_timer(unsigned int ticks, void *timer_idx)
|
|
|
char *path_ip_str = NULL;
|
|
|
unsigned int path_ip = 0;
|
|
|
unsigned short path_port = 0;
|
|
|
+ int options = 0;
|
|
|
|
|
|
if((*natping_state) == 0)
|
|
|
goto done;
|
|
@@ -2079,9 +2082,10 @@ nh_timer(unsigned int ticks, void *timer_idx)
|
|
|
goto done;
|
|
|
}
|
|
|
}
|
|
|
+ if(nh_filter_srvid) options |= GAU_OPT_SERVER_ID;
|
|
|
rval = ul.get_all_ucontacts(buf, cblen, (ping_nated_only?ul.nat_flag:0),
|
|
|
((unsigned int)(unsigned long)timer_idx)*natping_interval+iteration,
|
|
|
- natping_processes*natping_interval);
|
|
|
+ natping_processes*natping_interval, options);
|
|
|
if (rval<0) {
|
|
|
LM_ERR("failed to fetch contacts\n");
|
|
|
goto done;
|
|
@@ -2097,7 +2101,7 @@ nh_timer(unsigned int ticks, void *timer_idx)
|
|
|
}
|
|
|
rval = ul.get_all_ucontacts(buf,cblen,(ping_nated_only?ul.nat_flag:0),
|
|
|
((unsigned int)(unsigned long)timer_idx)*natping_interval+iteration,
|
|
|
- natping_processes*natping_interval);
|
|
|
+ natping_processes*natping_interval, options);
|
|
|
if (rval != 0) {
|
|
|
pkg_free(buf);
|
|
|
goto done;
|