diff --git a/modules_k/rtpproxy/rtpproxy.c b/modules_k/rtpproxy/rtpproxy.c index a2d088123..e3d5af550 100644 --- a/modules_k/rtpproxy/rtpproxy.c +++ b/modules_k/rtpproxy/rtpproxy.c @@ -1673,10 +1673,10 @@ unforce_rtp_proxy1_f(struct sip_msg* msg, char* str1, char* str2) LM_ERR("can't get Call-Id field\n"); return -1; } - if (via1 && get_via1_branch(msg, &viabranch) == -1 && viabranch.len == 0) { + if (via1 && get_via_branch(msg, 1, &viabranch) == -1 && viabranch.len == 0) { LM_ERR("can't get via1 branch\n"); return -1; - } else if (via2 && get_via2_branch(msg, &viabranch) == -1 && viabranch.len == 0) { + } else if (via2 && get_via_branch(msg, 2, &viabranch) == -1 && viabranch.len == 0) { LM_ERR("can't get via2 branch\n"); return -1; } else if(via1 || via2) { @@ -2020,10 +2020,10 @@ force_rtp_proxy(struct sip_msg* msg, char* str1, char* str2, int offer) LM_ERR("can't get From tag\n"); FORCE_RTP_PROXY_RET (-1); } - if(via1 && get_via1_branch(msg, &viabranch) == -1 && viabranch.len == 0) { + if(via1 && get_via_branch(msg, 1, &viabranch) == -1 && viabranch.len == 0) { LM_ERR("can't get via1 branch\n"); FORCE_RTP_PROXY_RET (-1); - } else if(via2 && get_via2_branch(msg, &viabranch) == -1 && viabranch.len == 0) { + } else if(via2 && get_via_branch(msg, 2, &viabranch) == -1 && viabranch.len == 0) { LM_ERR("can't get via2 branch\n"); FORCE_RTP_PROXY_RET (-1); } else if(via1 || via2) { diff --git a/modules_k/rtpproxy/rtpproxy_funcs.c b/modules_k/rtpproxy/rtpproxy_funcs.c index d04571252..3d2b5abd4 100644 --- a/modules_k/rtpproxy/rtpproxy_funcs.c +++ b/modules_k/rtpproxy/rtpproxy_funcs.c @@ -345,18 +345,13 @@ get_callid(struct sip_msg* _m, str* _cid) return 0; } -static int -get_via_branch(struct sip_msg* msg, hdr_field_t *hdr, str* _branch, int vianum) +int +get_via_branch(struct sip_msg* msg, int vianum, str* _branch) { struct via_body *via; struct via_param *p; - via = (struct via_body*)hdr->parsed; - if(!via) { - if(parse_via_header(msg, vianum, &via) < 0) - return -1; - } - if(!via) + if(parse_via_header(msg, vianum, &via) < 0) return -1; for(p = via->param_lst; p; p = p->next) @@ -371,26 +366,6 @@ get_via_branch(struct sip_msg* msg, hdr_field_t *hdr, str* _branch, int vianum) return -1; } - -int -get_via1_branch(struct sip_msg* _m, str* _branch) -{ - hdr_field_t *hdr; - - hdr = _m->h_via1; - return get_via_branch(_m, hdr, _branch, 1); -} - -int -get_via2_branch(struct sip_msg* _m, str* _branch) -{ - hdr_field_t *hdr; - - hdr = _m->h_via2; - return get_via_branch(_m, hdr, _branch, 2); -} - - /* * Extract tag from To header field of a response * assumes the to header is already parsed, so diff --git a/modules_k/rtpproxy/rtpproxy_funcs.h b/modules_k/rtpproxy/rtpproxy_funcs.h index 9f5934687..fb65fd58f 100644 --- a/modules_k/rtpproxy/rtpproxy_funcs.h +++ b/modules_k/rtpproxy/rtpproxy_funcs.h @@ -32,8 +32,7 @@ int extract_body(struct sip_msg * , str *); int check_content_type(struct sip_msg * ); void *ser_memmem(const void *, const void *, size_t, size_t); int get_callid(struct sip_msg *, str *); -int get_via1_branch(struct sip_msg *, str *); -int get_via2_branch(struct sip_msg *, str *); +int get_via_branch(struct sip_msg *, int, str *); int get_to_tag(struct sip_msg *, str *); int get_from_tag(struct sip_msg *, str *); int get_contact_uri(struct sip_msg *, struct sip_uri *, contact_t **);