瀏覽代碼

modules/rr: updated because outbound:decode_flow_token() arguments changed

Peter Dunkley 12 年之前
父節點
當前提交
dc1e11b5d0
共有 1 個文件被更改,包括 10 次插入10 次删除
  1. 10 10
      modules/rr/loose.c

+ 10 - 10
modules/rr/loose.c

@@ -504,13 +504,13 @@ static inline int process_outbound(struct sip_msg *_m, str flow_token,
 		str *dst_uri)
 {
 	int ret;
-	struct receive_info rcv;
+	struct receive_info *rcv = NULL;
 	struct socket_info *si;
 
 	if (!rr_obb.decode_flow_token)
 		return 0;
 
-	ret = rr_obb.decode_flow_token(&rcv, flow_token);
+	ret = rr_obb.decode_flow_token(_m, rcv, flow_token);
 
 	if (ret == -2) {
 		LM_DBG("no flow token found - outbound not in use\n");
@@ -518,13 +518,13 @@ static inline int process_outbound(struct sip_msg *_m, str flow_token,
 	} else if (ret == -1) {
 		LM_ERR("failed to decode flow token\n");
 		return -1;
-	} else if (!ip_addr_cmp(&rcv.src_ip, &_m->rcv.src_ip)
-			|| rcv.src_port != _m->rcv.src_port) {
+	} else if (!ip_addr_cmp(&rcv->src_ip, &_m->rcv.src_ip)
+			|| rcv->src_port != _m->rcv.src_port) {
 		LM_DBG("\"incoming\" request found. Using flow-token for"
 			"routing\n");
 
 		/* First, force the local socket */
-		si = find_si(&rcv.dst_ip, rcv.dst_port, rcv.proto);
+		si = find_si(&rcv->dst_ip, rcv->dst_port, rcv->proto);
 		if (si)
 			set_force_socket(_m, si);
 		else {
@@ -539,16 +539,16 @@ static inline int process_outbound(struct sip_msg *_m, str flow_token,
 		dst_uri->len += snprintf(dst_uri->s + dst_uri->len,
 					MAX_ROUTE_URI_LEN - dst_uri->len,
 					"sip:%s",
-					rcv.src_ip.af == AF_INET6 ? "[" : "");
-		dst_uri->len += ip_addr2sbuf(&rcv.src_ip,
+					rcv->src_ip.af == AF_INET6 ? "[" : "");
+		dst_uri->len += ip_addr2sbuf(&rcv->src_ip,
 					dst_uri->s + dst_uri->len,
 					MAX_ROUTE_URI_LEN - dst_uri->len);
 		dst_uri->len += snprintf(dst_uri->s + dst_uri->len,
 					MAX_ROUTE_URI_LEN - dst_uri->len,
 					"%s:%d;transport=%s",
-					rcv.src_ip.af == AF_INET6 ? "]" : "",
-					rcv.src_port,
-					get_proto_name(rcv.proto));
+					rcv->src_ip.af == AF_INET6 ? "]" : "",
+					rcv->src_port,
+					get_proto_name(rcv->proto));
 	}
 
 	return 1;