Mercurial > dovecot > core-2.2
view src/lib-http/http-request-parser.h @ 22656:1789bf2a1e01
director: Make sure HOST-RESET-USERS isn't used with max_moving_users=0
The reset command would just hang in that case. doveadm would never have
sent this, so this is just an extra sanity check.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sun, 05 Nov 2017 23:51:56 +0200 |
parents | 36a38929734d |
children |
line wrap: on
line source
#ifndef HTTP_REQUEST_PARSER_H #define HTTP_REQUEST_PARSER_H #include "http-request.h" enum http_request_parse_error { HTTP_REQUEST_PARSE_ERROR_NONE = 0, /* no error */ HTTP_REQUEST_PARSE_ERROR_BROKEN_STREAM, /* stream error */ HTTP_REQUEST_PARSE_ERROR_BROKEN_REQUEST, /* unrecoverable generic error */ HTTP_REQUEST_PARSE_ERROR_BAD_REQUEST, /* recoverable generic error */ HTTP_REQUEST_PARSE_ERROR_NOT_IMPLEMENTED, /* used unimplemented feature (recoverable) */ HTTP_REQUEST_PARSE_ERROR_EXPECTATION_FAILED, /* unknown item in Expect: header (recoverable) */ HTTP_REQUEST_PARSE_ERROR_METHOD_TOO_LONG, /* method too long (fatal) */ HTTP_REQUEST_PARSE_ERROR_TARGET_TOO_LONG, /* target too long (fatal) */ HTTP_REQUEST_PARSE_ERROR_PAYLOAD_TOO_LARGE /* payload too large (fatal) */ }; enum http_request_parse_flags { /* Strictly adhere to the HTTP protocol specification */ HTTP_REQUEST_PARSE_FLAG_STRICT = BIT(0) }; struct http_request_parser * http_request_parser_init(struct istream *input, const struct http_request_limits *limits, enum http_request_parse_flags flags) ATTR_NULL(2); void http_request_parser_deinit(struct http_request_parser **_parser); int http_request_parse_finish_payload( struct http_request_parser *parser, enum http_request_parse_error *error_code_r, const char **error_r); int http_request_parse_next(struct http_request_parser *parser, pool_t pool, struct http_request *request, enum http_request_parse_error *error_code_r, const char **error_r); bool http_request_parser_pending_payload(struct http_request_parser *parser); #endif