MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / parse_ppi_uri

Function parse_ppi_uri

parser/parse_ppi.c:85–116  ·  view source on GitHub ↗

* Parse P-Preferred-Identity header URI */

Source from the content-addressed store, hash-verified

83 * Parse P-Preferred-Identity header URI
84 */
85struct sip_uri *parse_ppi_uri(struct sip_msg *msg)
86{
87 struct to_body *tb = NULL;
88
89 if(msg==NULL)
90 return NULL;
91
92 if(parse_ppi_header(msg)<0)
93 {
94 LM_ERR("cannot parse P-P-I header\n");
95 return NULL;
96 }
97
98 if(msg->ppi==NULL || get_ppi(msg)==NULL)
99 return NULL;
100
101 tb = get_ppi(msg);
102
103 if(tb->parsed_uri.user.s!=NULL || tb->parsed_uri.host.s!=NULL)
104 return &tb->parsed_uri;
105
106 if (parse_uri(tb->uri.s, tb->uri.len , &tb->parsed_uri)<0)
107 {
108 LM_ERR("failed to parse P-P-I URI\n");
109 memset(&tb->parsed_uri, 0, sizeof(struct sip_uri));
110 set_err_info(OSER_EC_PARSER, OSER_EL_MEDIUM, "error parsing P-P-I URI");
111 set_err_reply(400, "bad P-Preferred-Identity uri");
112 return NULL;
113 }
114
115 return &tb->parsed_uri;
116}

Callers 1

pv_get_ppi_attrFunction · 0.85

Calls 4

parse_ppi_headerFunction · 0.85
parse_uriFunction · 0.85
set_err_infoFunction · 0.85
set_err_replyFunction · 0.85

Tested by

no test coverage detected