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

Author: Carsten Bock <[email protected]>
Committer: Hugh Waite <[email protected]>
Date:   Wed Dec 11 13:47:57 2013 +0100

lib/ims: Replaced custom getter for P-Asserted-Identity with the Parser from 
Core
(cherry picked from commit af1734cea213b2a07c9d725fff158cd4899725d1)

---

 lib/ims/ims_getters.c |   45 +++++++--------------------------------------
 1 files changed, 7 insertions(+), 38 deletions(-)

diff --git a/lib/ims/ims_getters.c b/lib/ims/ims_getters.c
index 8fce196..a41cd31 100644
--- a/lib/ims/ims_getters.c
+++ b/lib/ims/ims_getters.c
@@ -56,6 +56,7 @@
 #include "../../parser/parse_from.h"
 #include "../../parser/parse_content.h"
 #include "ims_getters.h"
+#include "../../parser/parse_ppi_pai.h"
 
 
 /**
@@ -389,45 +390,13 @@ str s_asserted_identity={"P-Asserted-Identity",19};
  */
 str cscf_get_asserted_identity(struct sip_msg *msg)
 {
-       name_addr_t id;
-       struct hdr_field *h;
-       rr_t *r;
-       memset(&id,0,sizeof(name_addr_t));
-       if (!msg) return id.uri;
-       if (parse_headers(msg, HDR_EOH_F, 0)<0) {
-               return id.uri;
-       }
-       h = msg->headers;
-       while(h)
-       {
-               if (h->name.len == s_asserted_identity.len  &&
-                               
strncasecmp(h->name.s,s_asserted_identity.s,s_asserted_identity.len)==0)
-               {
-                       if (parse_rr(h)<0){
-                               //This might be an old client
-                               LM_CRIT("WARN:cscf_get_asserted_identity: 
P-Asserted-Identity header must contain a Nameaddr!!! Fix the client!\n");
-                               id.name.s = h->body.s;
-                               id.name.len = 0;
-                               id.len = h->body.len;
-                               id.uri = h->body;
-                               while(id.uri.len && (id.uri.s[0]==' ' || 
id.uri.s[0]=='\t' || id.uri.s[0]=='<')){
-                                       id.uri.s = id.uri.s+1;
-                                       id.uri.len --;
-                               }
-                               while(id.uri.len && (id.uri.s[id.uri.len-1]==' 
' || id.uri.s[id.uri.len-1]=='\t' || id.uri.s[id.uri.len-1]=='>')){
-                                       id.uri.len--;
-                               }
-                               return id.uri;  
-                       }
-                       r = (rr_t*) h->parsed;
-                       id = r->nameaddr; 
-                       free_rr(&r);
-                       h->parsed=r;
-                       return id.uri;
-               }
-               h = h->next;
+       str uri = {0,0};
+       if (!msg) return uri;
+       if((parse_pai_header(msg) == 0) && (msg->pai) && (msg->pai->parsed)) {
+               to_body_t *pai = get_pai(msg)->id;
+               return pai->uri;
        }
-       return id.uri;
+       return uri;
 }
 
 static str phone_context_s={";phone-context=",15};


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to