diff --git a/modules/tm/sip_msg.c b/modules/tm/sip_msg.c index df9b559852..8d54ca6272 100644 --- a/modules/tm/sip_msg.c +++ b/modules/tm/sip_msg.c @@ -664,7 +664,6 @@ struct sip_msg* sip_msg_cloner( struct sip_msg *org_msg, int *sip_msg_len, else if ( !new_msg->via2 ) { LINK_SIBLING_HEADER(h_via1, new_hdr); - new_msg->h_via2 = new_hdr; new_msg->via2 = via_body_cloner( new_msg->buf, org_msg->buf, (struct via_body*)hdr->parsed, &p); new_hdr->parsed = (void*)new_msg->via2; diff --git a/parser/msg_parser.c b/parser/msg_parser.c index a68bec763c..2c0b5ffcb0 100644 --- a/parser/msg_parser.c +++ b/parser/msg_parser.c @@ -589,20 +589,13 @@ int parse_headers_aux(struct sip_msg* msg, hdr_flags_t flags, int next, int sip_ link_sibling_hdr(h_via1,hf); msg->parsed_flag|=HDR_VIA_F; LM_DBG("via found, flags=%llx\n", (unsigned long long)flags); - if (sip_well_known_parse) { - if (msg->via1==0) { - LM_DBG("this is the first via\n"); - msg->h_via1=hf; - msg->via1=hf->parsed; - if (msg->via1->next){ - msg->via2=msg->via1->next; - msg->parsed_flag|=HDR_VIA2_F; - } - }else if (msg->via2==0){ - msg->h_via2=hf; - msg->via2=hf->parsed; + if (sip_well_known_parse && msg->via1==0) { + LM_DBG("this is the first via\n"); + msg->h_via1=hf; + msg->via1=hf->parsed; + if (msg->via1->next){ + msg->via2=msg->via1->next; msg->parsed_flag|=HDR_VIA2_F; - LM_DBG("parse_headers: this is the second via\n"); } } break; diff --git a/parser/msg_parser.h b/parser/msg_parser.h index 9567594f01..bdd62162d9 100644 --- a/parser/msg_parser.h +++ b/parser/msg_parser.h @@ -240,7 +240,6 @@ struct sip_msg { * (WARNING: do not deallocate them twice!)*/ struct hdr_field* h_via1; - struct hdr_field* h_via2; struct hdr_field* callid; struct hdr_field* to; struct hdr_field* cseq;