Cleanup getting via branch.

3.1
Andreas Granig 13 years ago
parent a420b323cb
commit 3c68802954

@ -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) {

@ -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

@ -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 **);

Loading…
Cancel
Save