/*! \brief * Parse Route and Record-Route header fields */ int parse_rr(struct hdr_field* _h) { rr_t* r = NULL; if (!_h) { LOG(L_ERR, "parse_rr(): Invalid parameter value\n"); return -1; } if (_h->parsed) { /* Already parsed, return */ return 0; } if(do_parse_rr_body(_h->body.s, _h->body.len, &r) < 0) return -1; _h->parsed = (void*)r; return 0; }
/* * Parse Route and Record-Route header fields */ int parse_rr(struct hdr_field* _h) { rr_t* r = NULL; if (!_h) { LM_ERR("invalid parameter value\n"); return -1; } if (_h->parsed) { /* Already parsed, return */ return 0; } if(do_parse_rr_body(_h->body.s, _h->body.len, &r) < 0) { set_err_info(OSER_EC_PARSER, OSER_EL_MEDIUM, "error parsing RR headers"); set_err_reply(400, "bad headers"); return -1; } _h->parsed = (void*)r; return 0; }
/*! \brief * Wrapper to do_parse_rr_body() for external calls */ int parse_rr_body(char *buf, int len, rr_t **head) { return do_parse_rr_body(buf, len, head); }