From eca3bf7570290854561ecd4ef71dc093941e2d72 Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Wed, 10 May 2023 13:38:23 +0200 Subject: [PATCH] registrar: do not walk xavp list twice to get tcp connection id --- src/modules/registrar/save.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/modules/registrar/save.c b/src/modules/registrar/save.c index 878f22224b9..15be2331b83 100644 --- a/src/modules/registrar/save.c +++ b/src/modules/registrar/save.c @@ -71,7 +71,11 @@ extern sruid_t _reg_sruid; static int q_override_msg_id; static qvalue_t q_override_value; -int reg_get_cfg_tcpconnid(void) + +/** + * + */ +static int reg_get_cfg_tcpconnid(void) { int n; sr_xavp_t *vavp=NULL; @@ -254,6 +258,7 @@ static inline ucontact_info_t* pack_ci( struct sip_msg* _m, contact_t* _c, static struct sip_msg *m = 0; static struct socket_info si = {0}; int_str val; + int tcid; if (_m!=0) { memset( &ci, 0, sizeof(ucontact_info_t)); @@ -298,9 +303,11 @@ static inline ucontact_info_t* pack_ci( struct sip_msg* _m, contact_t* _c, } else { ci.tcpconn_id = -1; } - /* if a tcp connectionid is set, use it */ - if (reg_get_cfg_tcpconnid()) - ci.tcpconn_id = reg_get_cfg_tcpconnid(); + /* if a tcp connectionid is set via xavp, use it */ + tcid = reg_get_cfg_tcpconnid(); + if(tcid > 0) { + ci.tcpconn_id = tcid; + } /* additional info from message */ if (parse_headers(_m, HDR_USERAGENT_F, 0) != -1 && _m->user_agent &&