[sr-dev] git:master: modules/sipt: optional pointer should be updated when modifying called party

Torrey Searle tsearle at gmail.com
Thu Jan 16 12:06:53 CET 2014


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

Author: Torrey Searle <tsearle at gmail.com>
Committer: Torrey Searle <tsearle at gmail.com>
Date:   Thu Jan 16 12:02:09 2014 +0100

modules/sipt: optional pointer should be updated when modifying called party

---

 modules/sipt/ss7_parser.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/sipt/ss7_parser.c b/modules/sipt/ss7_parser.c
index c8fc239..3c6d8ff 100644
--- a/modules/sipt/ss7_parser.c
+++ b/modules/sipt/ss7_parser.c
@@ -308,11 +308,15 @@ int isup_update_destination(struct sdp_mangler * mangle, char * dest, int hops,
 
 
 	// modify the mandatory fixed header
-	res2 = encode_called_party(dest, buf+offset+1, nai, tmp_buf+1, 255-1);
-	tmp_buf[0] = (char)res2;
+	res2 = encode_called_party(dest, buf+offset+1, nai, tmp_buf+2, 255-1);
+	tmp_buf[1] = (char)res2;
 	res = buf[offset]+1;
+
+	// set the new optional part pointer
+	tmp_buf[0] = (char)res2+2;
 	
-	replace_body_segment(mangle, offset,res,tmp_buf, res2+1);
+	// replace the mandatory fixed header + optional pointer
+	replace_body_segment(mangle, offset - 1,res+1,tmp_buf, res2+2);
 
 	offset += res;
 	len -= res;




More information about the sr-dev mailing list