Module: sip-router Branch: 3.3 Commit: a0ffdb7eb2b1478a98422123c78e15ce2b21449f URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a0ffdb7eb2b1478a98422123c78e15ce2b21449f
Author: Daniel-Constantin Mierla <mico...@gmail.com> Committer: Daniel-Constantin Mierla <mico...@gmail.com> Date: Fri Aug 3 09:20:03 2012 +0200 rr(k): add missing '<' in Route header for strict routing - if next hop is strict router after loose routing, moving the r-uri to last Route header was missing '<' in front of the address - reported by Varsha Venkatraramani (cherry picked from commit 090be2532da73f51043f9ba5f4b221fe338d60fa) --- modules_k/rr/loose.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/modules_k/rr/loose.c b/modules_k/rr/loose.c index b74797f..22360df 100644 --- a/modules_k/rr/loose.c +++ b/modules_k/rr/loose.c @@ -49,6 +49,9 @@ #define RR_DRIVEN 1 /*!< The next hop is determined from the route set */ #define NOT_RR_DRIVEN -1 /*!< The next hop is not determined from the route set */ +#define RR_ROUTE_PREFIX ROUTE_PREFIX "<" +#define RR_ROUTE_PREFIX_LEN (sizeof(RR_ROUTE_PREFIX)-1) + #define ROUTE_SUFFIX ">\r\n" /*!< SIP header suffix */ #define ROUTE_SUFFIX_LEN (sizeof(ROUTE_SUFFIX)-1) @@ -307,7 +310,8 @@ static inline int save_ruri(struct sip_msg* _m) } /* Create buffer for new lump */ - len = ROUTE_PREFIX_LEN + _m->first_line.u.request.uri.len + ROUTE_SUFFIX_LEN; + len = RR_ROUTE_PREFIX_LEN + _m->first_line.u.request.uri.len + + ROUTE_SUFFIX_LEN; s = (char*)pkg_malloc(len); if (!s) { LM_ERR("No memory pkg left\n"); @@ -315,9 +319,11 @@ static inline int save_ruri(struct sip_msg* _m) } /* Create new header field */ - memcpy(s, ROUTE_PREFIX, ROUTE_PREFIX_LEN); - memcpy(s + ROUTE_PREFIX_LEN, _m->first_line.u.request.uri.s, _m->first_line.u.request.uri.len); - memcpy(s + ROUTE_PREFIX_LEN + _m->first_line.u.request.uri.len, ROUTE_SUFFIX, ROUTE_SUFFIX_LEN); + memcpy(s, RR_ROUTE_PREFIX, RR_ROUTE_PREFIX_LEN); + memcpy(s + RR_ROUTE_PREFIX_LEN, _m->first_line.u.request.uri.s, + _m->first_line.u.request.uri.len); + memcpy(s + ROUTE_PREFIX_LEN + _m->first_line.u.request.uri.len, + ROUTE_SUFFIX, ROUTE_SUFFIX_LEN); LM_DBG("New header: '%.*s'\n", len, ZSW(s)); _______________________________________________ sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev