* Extract branch from Via header */
| 249 | * Extract branch from Via header |
| 250 | */ |
| 251 | int |
| 252 | get_via_branch(struct sip_msg* msg, int vianum, str* _branch) |
| 253 | { |
| 254 | struct via_body *via; |
| 255 | struct via_param *p; |
| 256 | |
| 257 | if (parse_headers(msg, (vianum == 1) ? HDR_VIA1_F : HDR_VIA2_F, 0) < 0) |
| 258 | return -1; |
| 259 | |
| 260 | via = (vianum == 1) ? msg->via1 : msg->via2; |
| 261 | if (!via) |
| 262 | return -1; |
| 263 | for (p = via->param_lst; p; p = p->next) |
| 264 | { |
| 265 | if (p->name.len == strlen("branch") |
| 266 | && strncasecmp(p->name.s, "branch", strlen("branch")) == 0) { |
| 267 | _branch->s = p->value.s; |
| 268 | _branch->len = p->value.len; |
| 269 | return 0; |
| 270 | } |
| 271 | } |
| 272 | return -1; |
| 273 | } |
no outgoing calls
no test coverage detected