From 5add6c44cc8d268748488b8f2683c88bbfd4572e Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Tue, 16 May 2017 17:33:10 +0200 Subject: [PATCH] core: wrapper function to reset avps/xavps from msg environment - use it to clean after processing received msg (cherry picked from commit 46ea6b0a6bcf55243a0d11be41f60a2678dbbcfb) --- src/core/receive.c | 22 +++++++++++++--------- src/core/receive.h | 1 + 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/core/receive.c b/src/core/receive.c index 0e622274f9f..7f2599af695 100644 --- a/src/core/receive.c +++ b/src/core/receive.c @@ -360,11 +360,7 @@ int receive_msg(char* buf, unsigned int len, struct receive_info* rcv_info) #ifdef STATS skipped = 0; #endif - /* free possible loaded avps -bogdan */ - reset_avps(); -#ifdef WITH_XAVP - xavp_reset_list(); -#endif + ksr_msg_env_reset(); LM_DBG("cleaning up\n"); free_sip_msg(msg); pkg_free(msg); @@ -390,13 +386,21 @@ int receive_msg(char* buf, unsigned int len, struct receive_info* rcv_info) free_sip_msg(msg); pkg_free(msg); error00: - reset_avps(); -#ifdef WITH_XAVP - xavp_reset_list(); -#endif + ksr_msg_env_reset(); STATS_RX_DROPS; /* reset log prefix */ log_prefix_set(NULL); return -1; } +/** + * clean up msg environment, such as avp and xavp lists + */ +void ksr_msg_env_reset(void) +{ + reset_avps(); +#ifdef WITH_XAVP + xavp_reset_list(); +#endif + +} diff --git a/src/core/receive.h b/src/core/receive.h index 4e6a13d3fd4..0a928c5d42e 100644 --- a/src/core/receive.h +++ b/src/core/receive.h @@ -33,5 +33,6 @@ int receive_msg(char* buf, unsigned int len, struct receive_info *ri); unsigned int inc_msg_no(void); +void ksr_msg_env_reset(void); #endif