[sr-dev] git:master: modules/tm: Enhanced t_replicate so that if a NULL string is used it replicates to $du

Peter Dunkley peter.dunkley at crocodile-rcs.com
Fri Aug 3 15:40:20 CEST 2012


Module: sip-router
Branch: master
Commit: 19aafcfc262c16f98793ef135900cd65fca44522
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=19aafcfc262c16f98793ef135900cd65fca44522

Author: Peter Dunkley <peter.dunkley at crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunkley at crocodile-rcs.com>
Date:   Fri Aug  3 14:37:20 2012 +0100

modules/tm: Enhanced t_replicate so that if a NULL string is used it replicates to $du

- Added by Hugh Waite @ Crocodile RCS

---

 modules/tm/tm.c |   35 ++++++++++++++++++++---------------
 1 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/modules/tm/tm.c b/modules/tm/tm.c
index 3c60bbe..861b5eb 100644
--- a/modules/tm/tm.c
+++ b/modules/tm/tm.c
@@ -1532,27 +1532,32 @@ inline static int w_t_relay_to_avp( struct sip_msg  *p_msg ,
 
 int t_replicate_uri(struct sip_msg *msg, str *suri)
 {
-	struct proxy_l *proxy;
+	struct proxy_l *proxy = NULL;
 	struct sip_uri turi;
 	int r = -1;
 
-	memset(&turi, 0, sizeof(struct sip_uri));
-	if(parse_uri(suri->s, suri->len, &turi)!=0)
+	if (suri != NULL && suri->s != NULL)
 	{
-		LM_ERR("bad replicate SIP address!\n");
-		return -1;
-	}
+		memset(&turi, 0, sizeof(struct sip_uri));
+		if(parse_uri(suri->s, suri->len, &turi)!=0)
+		{
+			LM_ERR("bad replicate SIP address!\n");
+			return -1;
+		}
 
-	proxy=mk_proxy(&turi.host, turi.port_no, turi.proto);
-	if (proxy==0) {
-		LM_ERR("cannot create proxy from URI <%.*s>\n",
-			suri->len, suri->s );
-		return -1;
-	}
+		proxy=mk_proxy(&turi.host, turi.port_no, turi.proto);
+		if (proxy==0) {
+			LM_ERR("cannot create proxy from URI <%.*s>\n",
+				suri->len, suri->s );
+			return -1;
+		}
 
-	r = t_replicate(msg, proxy, proxy->proto);
-	free_proxy(proxy);
-	pkg_free(proxy);
+		r = t_replicate(msg, proxy, proxy->proto);
+		free_proxy(proxy);
+		pkg_free(proxy);
+	} else {
+		r = t_replicate(msg, NULL, 0);
+	}
 	return r;
 }
 




More information about the sr-dev mailing list