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

Function pv_get_xuri_attr

pvar.c:667–700  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

665}
666
667static int pv_get_xuri_attr(struct sip_msg *msg, struct sip_uri *parsed_uri,
668 pv_param_t *param, pv_value_t *res)
669{
670 unsigned short proto;
671 str proto_s;
672
673 if(param->pvn.u.isname.name.n==1) /* username */
674 {
675 if(parsed_uri->user.s==NULL || parsed_uri->user.len<=0)
676 return pv_get_null(msg, param, res);
677 return pv_get_strval(msg, param, res, &parsed_uri->user);
678 } else if(param->pvn.u.isname.name.n==2) /* domain */ {
679 if(parsed_uri->host.s==NULL || parsed_uri->host.len<=0)
680 return pv_get_null(msg, param, res);
681 return pv_get_strval(msg, param, res, &parsed_uri->host);
682 } else if(param->pvn.u.isname.name.n==3) /* port */ {
683 if(parsed_uri->port.s==NULL)
684 return pv_get_uintval(msg, param, res,
685 get_uri_port( parsed_uri, &proto));
686 return pv_get_strintval(msg, param, res, &parsed_uri->port,
687 (int)parsed_uri->port_no);
688 } else if(param->pvn.u.isname.name.n==4) /* protocol */ {
689 if(parsed_uri->transport_val.s==NULL) {
690 get_uri_port(parsed_uri, &proto);
691 proto_s.s = protos[proto].name;
692 proto_s.len = proto_s.s ? strlen(proto_s.s) : 0;
693 return pv_get_strintval(msg, param, res, &proto_s, (int)proto);
694 }
695 return pv_get_strintval(msg, param, res, &parsed_uri->transport_val,
696 (int)parsed_uri->proto);
697 }
698 LM_ERR("unknown specifier\n");
699 return pv_get_null(msg, param, res);
700}
701
702static int pv_get_ruri_attr(struct sip_msg *msg, pv_param_t *param,
703 pv_value_t *res)

Callers 2

pv_get_ruri_attrFunction · 0.85
pv_get_ouri_attrFunction · 0.85

Calls 5

pv_get_nullFunction · 0.85
pv_get_strvalFunction · 0.85
pv_get_uintvalFunction · 0.85
get_uri_portFunction · 0.85
pv_get_strintvalFunction · 0.85

Tested by

no test coverage detected