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

Function parse_uri_class

parser/parse_param.c:100–162  ·  view source on GitHub ↗

* Try to find out parameter name, recognized parameters * are transport, lr, r2, maddr */

Source from the content-addressed store, hash-verified

98 * are transport, lr, r2, maddr
99 */
100static inline void parse_uri_class(param_hooks_t* _h, param_t* _p)
101{
102
103 if (!_p->name.s) {
104 LM_ERR("empty value\n");
105 return;
106 }
107 switch(_p->name.s[0]) {
108 case 't':
109 case 'T':
110 if ((_p->name.len == 9) &&
111 (!strncasecmp(_p->name.s + 1, "ransport", 8))) {
112 _p->type = P_TRANSPORT;
113 _h->uri.transport = _p;
114 } else if (_p->name.len == 2) {
115 if (((_p->name.s[1] == 't') || (_p->name.s[1] == 'T')) &&
116 ((_p->name.s[2] == 'l') || (_p->name.s[2] == 'L'))) {
117 _p->type = P_TTL;
118 _h->uri.ttl = _p;
119 }
120 }
121 break;
122
123 case 'l':
124 case 'L':
125 if ((_p->name.len == 2) && ((_p->name.s[1] == 'r') || (_p->name.s[1] == 'R'))) {
126 _p->type = P_LR;
127 _h->uri.lr = _p;
128 }
129 break;
130
131 case 'r':
132 case 'R':
133 if ((_p->name.len == 2) && (_p->name.s[1] == '2')) {
134 _p->type = P_R2;
135 _h->uri.r2 = _p;
136 }
137 break;
138
139 case 'm':
140 case 'M':
141 if ((_p->name.len == 5) &&
142 (!strncasecmp(_p->name.s + 1, "addr", 4))) {
143 _p->type = P_MADDR;
144 _h->uri.maddr = _p;
145 }
146 break;
147
148 case 'd':
149 case 'D':
150 if ((_p->name.len == 5) &&
151 (!strncasecmp(_p->name.s + 1, "stip", 4))) {
152 _p->type = P_DSTIP;
153 _h->uri.dstip = _p;
154 } else if ((_p->name.len == 7) &&
155 (!strncasecmp(_p->name.s + 1, "stport", 6))) {
156 _p->type = P_DSTPORT;
157 _h->uri.dstport = _p;

Callers 1

parse_param_nameFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected