Lines Matching refs:parser
33 void llhttp_init(llhttp_t* parser, llhttp_type_t type,
35 llhttp__internal_init(parser);
37 parser->type = type;
38 parser->settings = (void*) settings;
87 llhttp_t* parser = malloc(sizeof(llhttp_t));
88 llhttp_init(parser, type, &wasm_settings);
89 return parser;
92 void llhttp_free(llhttp_t* parser) {
93 free(parser);
98 /* Some getters required to get stuff from the parser */
100 uint8_t llhttp_get_type(llhttp_t* parser) {
101 return parser->type;
104 uint8_t llhttp_get_http_major(llhttp_t* parser) {
105 return parser->http_major;
108 uint8_t llhttp_get_http_minor(llhttp_t* parser) {
109 return parser->http_minor;
112 uint8_t llhttp_get_method(llhttp_t* parser) {
113 return parser->method;
116 int llhttp_get_status_code(llhttp_t* parser) {
117 return parser->status_code;
120 uint8_t llhttp_get_upgrade(llhttp_t* parser) {
121 return parser->upgrade;
125 void llhttp_reset(llhttp_t* parser) {
126 llhttp_type_t type = parser->type;
127 const llhttp_settings_t* settings = parser->settings;
128 void* data = parser->data;
129 uint8_t lenient_flags = parser->lenient_flags;
131 llhttp__internal_init(parser);
133 parser->type = type;
134 parser->settings = (void*) settings;
135 parser->data = data;
136 parser->lenient_flags = lenient_flags;
140 llhttp_errno_t llhttp_execute(llhttp_t* parser, const char* data, size_t len) {
141 return llhttp__internal_execute(parser, data, data + len);
150 llhttp_errno_t llhttp_finish(llhttp_t* parser) {
154 if (parser->error != 0) {
158 switch (parser->finish) {
160 CALLBACK_MAYBE(parser, on_message_complete);
167 parser->reason = "Invalid EOF state";
175 void llhttp_pause(llhttp_t* parser) {
176 if (parser->error != HPE_OK) {
180 parser->error = HPE_PAUSED;
181 parser->reason = "Paused";
185 void llhttp_resume(llhttp_t* parser) {
186 if (parser->error != HPE_PAUSED) {
190 parser->error = 0;
194 void llhttp_resume_after_upgrade(llhttp_t* parser) {
195 if (parser->error != HPE_PAUSED_UPGRADE) {
199 parser->error = 0;
203 llhttp_errno_t llhttp_get_errno(const llhttp_t* parser) {
204 return parser->error;
208 const char* llhttp_get_error_reason(const llhttp_t* parser) {
209 return parser->reason;
213 void llhttp_set_error_reason(llhttp_t* parser, const char* reason) {
214 parser->reason = reason;
218 const char* llhttp_get_error_pos(const llhttp_t* parser) {
219 return parser->error_pos;
252 void llhttp_set_lenient_headers(llhttp_t* parser, int enabled) {
254 parser->lenient_flags |= LENIENT_HEADERS;
256 parser->lenient_flags &= ~LENIENT_HEADERS;
261 void llhttp_set_lenient_chunked_length(llhttp_t* parser, int enabled) {
263 parser->lenient_flags |= LENIENT_CHUNKED_LENGTH;
265 parser->lenient_flags &= ~LENIENT_CHUNKED_LENGTH;
270 void llhttp_set_lenient_keep_alive(llhttp_t* parser, int enabled) {
272 parser->lenient_flags |= LENIENT_KEEP_ALIVE;
274 parser->lenient_flags &= ~LENIENT_KEEP_ALIVE;
278 void llhttp_set_lenient_transfer_encoding(llhttp_t* parser, int enabled) {
280 parser->lenient_flags |= LENIENT_TRANSFER_ENCODING;
282 parser->lenient_flags &= ~LENIENT_TRANSFER_ENCODING;
286 void llhttp_set_lenient_version(llhttp_t* parser, int enabled) {
288 parser->lenient_flags |= LENIENT_VERSION;
290 parser->lenient_flags &= ~LENIENT_VERSION;
294 void llhttp_set_lenient_data_after_close(llhttp_t* parser, int enabled) {
296 parser->lenient_flags |= LENIENT_DATA_AFTER_CLOSE;
298 parser->lenient_flags &= ~LENIENT_DATA_AFTER_CLOSE;
302 void llhttp_set_lenient_optional_lf_after_cr(llhttp_t* parser, int enabled) {
304 parser->lenient_flags |= LENIENT_OPTIONAL_LF_AFTER_CR;
306 parser->lenient_flags &= ~LENIENT_OPTIONAL_LF_AFTER_CR;
310 void llhttp_set_lenient_optional_crlf_after_chunk(llhttp_t* parser, int enabled) {
312 parser->lenient_flags |= LENIENT_OPTIONAL_CRLF_AFTER_CHUNK;
314 parser->lenient_flags &= ~LENIENT_OPTIONAL_CRLF_AFTER_CHUNK;