summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_parse.c
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2017-12-27 15:45:23 +0300
committerValentin Bartenev <vbart@nginx.com>2017-12-27 15:45:23 +0300
commit45d08d5145c63fd788f85d9e789314dcf093c99e (patch)
treec12e02adfd36abe638b1434fa4956c4f887ff6e2 /src/nxt_http_parse.c
parentbe36cf52c8b092ebb688784a1c10626cac2138d7 (diff)
downloadunit-45d08d5145c63fd788f85d9e789314dcf093c99e.tar.gz
unit-45d08d5145c63fd788f85d9e789314dcf093c99e.tar.bz2
HTTP parser: introduced nxt_http_parse_fields().
Diffstat (limited to 'src/nxt_http_parse.c')
-rw-r--r--src/nxt_http_parse.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/nxt_http_parse.c b/src/nxt_http_parse.c
index 34d88839..17bd0657 100644
--- a/src/nxt_http_parse.c
+++ b/src/nxt_http_parse.c
@@ -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
nxt_http_parse_request_line(nxt_http_request_parse_t *rp, u_char **pos,
u_char *end)