HTTP parser: introduced nxt_http_parse_fields().

This commit is contained in:
Valentin Bartenev
2017-12-27 15:45:23 +03:00
parent be36cf52c8
commit 45d08d5145
2 changed files with 19 additions and 0 deletions

View File

@@ -146,6 +146,23 @@ nxt_http_parse_request(nxt_http_request_parse_t *rp, nxt_buf_mem_t *b)
} }
nxt_int_t
nxt_http_parse_fields(nxt_http_request_parse_t *rp, nxt_buf_mem_t *b)
{
nxt_int_t rc;
if (rp->handler == NULL) {
rp->handler = &nxt_http_parse_field_name;
}
do {
rc = rp->handler(rp, &b->pos, b->free);
} while (rc == NXT_OK);
return rc;
}
static nxt_int_t static nxt_int_t
nxt_http_parse_request_line(nxt_http_request_parse_t *rp, u_char **pos, nxt_http_parse_request_line(nxt_http_request_parse_t *rp, u_char **pos,
u_char *end) u_char *end)

View File

@@ -83,6 +83,8 @@ nxt_int_t nxt_http_parse_request_init(nxt_http_request_parse_t *rp,
nxt_mp_t *mp); nxt_mp_t *mp);
nxt_int_t nxt_http_parse_request(nxt_http_request_parse_t *rp, nxt_int_t nxt_http_parse_request(nxt_http_request_parse_t *rp,
nxt_buf_mem_t *b); nxt_buf_mem_t *b);
nxt_int_t nxt_http_parse_fields(nxt_http_request_parse_t *rp,
nxt_buf_mem_t *b);
nxt_int_t nxt_http_fields_hash(nxt_lvlhsh_t *hash, nxt_mp_t *mp, nxt_int_t nxt_http_fields_hash(nxt_lvlhsh_t *hash, nxt_mp_t *mp,
nxt_http_field_proc_t items[], nxt_uint_t count); nxt_http_field_proc_t items[], nxt_uint_t count);