* Parse Route and Record-Route header fields */
| 153 | * Parse Route and Record-Route header fields |
| 154 | */ |
| 155 | int parse_rr(struct hdr_field* _h) |
| 156 | { |
| 157 | rr_t* r = NULL; |
| 158 | |
| 159 | if (!_h) { |
| 160 | LM_ERR("invalid parameter value\n"); |
| 161 | return -1; |
| 162 | } |
| 163 | |
| 164 | if (_h->parsed) { |
| 165 | /* Already parsed, return */ |
| 166 | return 0; |
| 167 | } |
| 168 | |
| 169 | if(do_parse_rr_body(_h->body.s, _h->body.len, &r) < 0) { |
| 170 | set_err_info(OSER_EC_PARSER, OSER_EL_MEDIUM, |
| 171 | "error parsing RR headers"); |
| 172 | set_err_reply(400, "bad headers"); |
| 173 | return -1; |
| 174 | } |
| 175 | _h->parsed = (void*)r; |
| 176 | return 0; |
| 177 | } |
| 178 | |
| 179 | /* |
| 180 | * Free list of rrs |
no test coverage detected