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.dunk...@crocodile-rcs.com>
Committer: Peter Dunkley <peter.dunk...@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;
 }
 


_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to