fix logic mistakes in unforce_rtp_proxy1_f (causes parse errors to be missed and drops the last from/to-tag if no via-branch is requested)

3.1_post-ngcp-2.5
Richard Fuchs 14 years ago
parent fecd65dc9b
commit cef83492ee

@ -1645,7 +1645,6 @@ unforce_rtp_proxy1_f(struct sip_msg* msg, char* str1, char* str2)
int via1, via2;
str callid, from_tag, to_tag, viabranch;
struct rtpp_node *node;
int iovec_count;
struct iovec v[1 + 6 + 3] = {{NULL, 0}, {"D", 1}, {" ", 1}, {NULL, 0}, {NULL, 0}, {NULL, 0}, {" ", 1}, {NULL, 0}, {" ", 1}, {NULL, 0}};
char *viasepchar = ";";
str viasep;
@ -1673,10 +1672,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_via_branch(msg, 1, &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_via_branch(msg, 2, &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) {
@ -1705,12 +1704,7 @@ unforce_rtp_proxy1_f(struct sip_msg* msg, char* str1, char* str2)
LM_ERR("no available proxies\n");
return -1;
}
iovec_count = 6;
if(to_tag.len > 0)
iovec_count += 2;
if(viabranch.len > 0)
iovec_count += 2;
send_rtpp_command(node, v, iovec_count);
send_rtpp_command(node, v, (to_tag.len > 0) ? 10 : 8);
return 1;
}

Loading…
Cancel
Save