Module: kamailio Branch: master Commit: d2f695d63266a5e1762db2e762396e7943687180 URL: https://github.com/kamailio/kamailio/commit/d2f695d63266a5e1762db2e762396e79...
Author: Alex Hermann alex@speakup.nl Committer: Alex Hermann alex@speakup.nl Date: 2016-08-05T15:07:03+02:00
sl: Reset timeout before sending the message
Fix a common race where the reply would arrive before resetting the timeout.
---
Modified: modules/sl/sl_funcs.c
---
Diff: https://github.com/kamailio/kamailio/commit/d2f695d63266a5e1762db2e762396e79... Patch: https://github.com/kamailio/kamailio/commit/d2f695d63266a5e1762db2e762396e79...
---
diff --git a/modules/sl/sl_funcs.c b/modules/sl/sl_funcs.c index a65a7b8..ec5a2ba 100644 --- a/modules/sl/sl_funcs.c +++ b/modules/sl/sl_funcs.c @@ -182,6 +182,8 @@ int sl_reply_helper(struct sip_msg *msg, int code, char *reason, str *tag) sl_run_callbacks(SLCB_REPLY_READY, msg, code, reason, &buf, &dst);
+ *(sl_timeout) = get_ticks() + SL_RPL_WAIT_TIME; + /* supress multhoming support when sending a reply back -- that makes sure that replies will come from where requests came in; good for NATs (there is no known use for mhomed for locally generated replies; @@ -286,8 +288,6 @@ int sl_reply_helper(struct sip_msg *msg, int code, char *reason, str *tag) if (ret<0) { goto error; } - - *(sl_timeout) = get_ticks() + SL_RPL_WAIT_TIME;
update_sl_stats(code); return 1;