浏览代码

- fix: sip_msg_cloner wrongly translated parsed_uri when the message had
new_uri set (probably not seen until now because we set parsed_uri_ok to 0
on failure route and we didn't have non-failure callbacks causing the uri to
be reparsed)

Andrei Pelinescu-Onciul 17 年之前
父节点
当前提交
c2e3e760b9
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      modules/tm/sip_msg.c

+ 5 - 1
modules/tm/sip_msg.c

@@ -487,7 +487,11 @@ do { \
 			translate_pointer( new_msg->buf , org_msg->buf ,
 			org_msg->first_line.u.request.version.s );
 		uri_trans(new_msg->buf, org_msg->buf, &new_msg->parsed_orig_ruri);
-		uri_trans(new_msg->buf, org_msg->buf, &new_msg->parsed_uri);
+		if (org_msg->new_uri.s && org_msg->new_uri.len)
+			uri_trans(new_msg->new_uri.s, org_msg->new_uri.s,
+											&new_msg->parsed_uri);
+		else
+			uri_trans(new_msg->buf, org_msg->buf, &new_msg->parsed_uri);
 	}
 	else if ( org_msg->first_line.type==SIP_REPLY )
 	{