Module: sip-router Branch: master Commit: 120a9aa055c44eef26c1a635ceb75a150a284b56 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=120a9aa0...
Author: Richard Good richard.good@smilecoms.com Committer: Richard Good richard.good@smilecoms.com Date: Tue Dec 3 18:09:30 2013 +0200
modules/ims_registrar_scscf: fixed comparison of P-asserted-id and Path header In can_subscribe_to_reg() we check if the P-Asserted-Identity in the Subscribe is in the Register path header (i.e. is this the P-CSCF subscribing to UE reg-event) This fix changes the comparison to compare P-asserted-id without "sip:" to cater for all compliant path header formats
---
modules/ims_registrar_scscf/registrar_notify.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/modules/ims_registrar_scscf/registrar_notify.c b/modules/ims_registrar_scscf/registrar_notify.c index d5c4bf9..70fcc95 100644 --- a/modules/ims_registrar_scscf/registrar_notify.c +++ b/modules/ims_registrar_scscf/registrar_notify.c @@ -198,7 +198,10 @@ int can_subscribe_to_reg(struct sip_msg *msg, char *_t, char *str2) { while (c) { if (c->path.len) { for (i = 0; i < c->path.len - asserted_id.len; i++) - if (strncasecmp(c->path.s + i, asserted_id.s, asserted_id.len) == 0) { + LM_DBG("Path: <%.*s>.\n", + c->path.len, c->path.s); + //we compare the asserted_id without "sip:" to the path + if (strncasecmp(c->path.s + i, asserted_id.s+4, asserted_id.len-4) == 0) { LM_DBG("Identity found in Path <%.*s>\n", c->path.len, c->path.s); ret = CSCF_RETURN_TRUE;