Mercurial > dovecot > core-2.2
view src/lib-http/http-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 | 2121057f994b |
children |
line wrap: on
line source
#ifndef HTTP_PARSER_H #define HTTP_PARSER_H /* * Character definitions */ extern const unsigned char _http_token_char_mask; extern const unsigned char _http_value_char_mask; extern const unsigned char _http_text_char_mask; extern const unsigned char _http_qdtext_char_mask; extern const unsigned char _http_ctext_char_mask; extern const unsigned char _http_token68_char_mask; extern const unsigned char _http_char_lookup[256]; static inline bool http_char_is_token(unsigned char ch) { return (_http_char_lookup[ch] & _http_token_char_mask) != 0; } static inline bool http_char_is_value(unsigned char ch) { return (_http_char_lookup[ch] & _http_value_char_mask) != 0; } static inline bool http_char_is_text(unsigned char ch) { return (_http_char_lookup[ch] & _http_text_char_mask) != 0; } static inline bool http_char_is_qdtext(unsigned char ch) { return (_http_char_lookup[ch] & _http_qdtext_char_mask) != 0; } static inline bool http_char_is_ctext(unsigned char ch) { return (_http_char_lookup[ch] & _http_ctext_char_mask) != 0; } static inline bool http_char_is_token68(unsigned char ch) { return (_http_char_lookup[ch] & _http_token68_char_mask) != 0; } /* * HTTP value parsing */ struct http_parser { const unsigned char *begin, *cur, *end; }; void http_parser_init(struct http_parser *parser, const unsigned char *data, size_t size); void http_parse_ows(struct http_parser *parser); int http_parser_skip_token(struct http_parser *parser); int http_parse_token(struct http_parser *parser, const char **token_r); int http_parse_token_list_next(struct http_parser *parser, const char **token_r); int http_parse_quoted_string(struct http_parser *parser, const char **str_r); int http_parse_token_or_qstring(struct http_parser *parser, const char **word_r); #endif