Add REQUEST_BODY
[mistral.git] / http11_parser.h
blob2a64836f11b801b3a5a2e163380ae1ad23ef5e39
2 #ifndef http11_parser_h
3 #define http11_parser_h
5 #include "http11_common.h"
7 enum { CONTENT_LENGTH
8 , CONTENT_TYPE
9 , FRAGMENT
10 , HTTP_VERSION
11 , QUERY_STRING
12 , REQUEST_PATH
13 , REQUEST_METHOD
14 , REQUEST_URI
15 , REQUEST_BODY
18 typedef struct http_parser {
19 int cs;
20 size_t body_start;
21 int content_len;
22 size_t nread;
23 size_t mark;
24 size_t field_start;
25 size_t field_len;
26 size_t query_start;
28 void *data;
30 field_cb http_field;
31 element_cb on_element;
32 element_cb header_done;
33 } http_parser;
35 int http_parser_init(http_parser *parser);
36 int http_parser_finish(http_parser *parser);
37 size_t http_parser_execute(http_parser *parser, const char *data, size_t len, size_t off);
38 int http_parser_has_error(http_parser *parser);
39 int http_parser_is_finished(http_parser *parser);
41 #define http_parser_nread(parser) (parser)->nread
43 #endif