|
|
- from libc.stdint cimport uint16_t, uint32_t, uint64_t
-
-
- cdef extern from "../vendor/http-parser/http_parser.h":
- ctypedef int (*http_data_cb) (http_parser*,
- const char *at,
- size_t length) except -1
-
- ctypedef int (*http_cb) (http_parser*) except -1
-
- struct http_parser:
- unsigned int type
- unsigned int flags
- unsigned int state
- unsigned int header_state
- unsigned int index
-
- uint32_t nread
- uint64_t content_length
-
- unsigned short http_major
- unsigned short http_minor
- unsigned int status_code
- unsigned int method
- unsigned int http_errno
-
- unsigned int upgrade
-
- void *data
-
- struct http_parser_settings:
- http_cb on_message_begin
- http_data_cb on_url
- http_data_cb on_status
- http_data_cb on_header_field
- http_data_cb on_header_value
- http_cb on_headers_complete
- http_data_cb on_body
- http_cb on_message_complete
- http_cb on_chunk_header
- http_cb on_chunk_complete
-
- enum http_parser_type:
- HTTP_REQUEST,
- HTTP_RESPONSE,
- HTTP_BOTH
-
- enum http_errno:
- HPE_OK,
- HPE_CB_message_begin,
- HPE_CB_url,
- HPE_CB_header_field,
- HPE_CB_header_value,
- HPE_CB_headers_complete,
- HPE_CB_body,
- HPE_CB_message_complete,
- HPE_CB_status,
- HPE_CB_chunk_header,
- HPE_CB_chunk_complete,
- HPE_INVALID_EOF_STATE,
- HPE_HEADER_OVERFLOW,
- HPE_CLOSED_CONNECTION,
- HPE_INVALID_VERSION,
- HPE_INVALID_STATUS,
- HPE_INVALID_METHOD,
- HPE_INVALID_URL,
- HPE_INVALID_HOST,
- HPE_INVALID_PORT,
- HPE_INVALID_PATH,
- HPE_INVALID_QUERY_STRING,
- HPE_INVALID_FRAGMENT,
- HPE_LF_EXPECTED,
- HPE_INVALID_HEADER_TOKEN,
- HPE_INVALID_CONTENT_LENGTH,
- HPE_INVALID_CHUNK_SIZE,
- HPE_INVALID_CONSTANT,
- HPE_INVALID_INTERNAL_STATE,
- HPE_STRICT,
- HPE_PAUSED,
- HPE_UNKNOWN
-
- enum flags:
- F_CHUNKED,
- F_CONNECTION_KEEP_ALIVE,
- F_CONNECTION_CLOSE,
- F_CONNECTION_UPGRADE,
- F_TRAILING,
- F_UPGRADE,
- F_SKIPBODY,
- F_CONTENTLENGTH
-
- enum http_method:
- DELETE, GET, HEAD, POST, PUT, CONNECT, OPTIONS, TRACE, COPY,
- LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH, SEARCH, UNLOCK, BIND,
- REBIND, UNBIND, ACL, REPORT, MKACTIVITY, CHECKOUT, MERGE,
- MSEARCH, NOTIFY, SUBSCRIBE, UNSUBSCRIBE, PATCH, PURGE, MKCALENDAR,
- LINK, UNLINK
-
- void http_parser_init(http_parser *parser, http_parser_type type)
-
- size_t http_parser_execute(http_parser *parser,
- const http_parser_settings *settings,
- const char *data,
- size_t len)
-
- int http_should_keep_alive(const http_parser *parser)
-
- void http_parser_settings_init(http_parser_settings *settings)
-
- const char *http_errno_name(http_errno err)
- const char *http_errno_description(http_errno err)
- const char *http_method_str(http_method m)
-
- # URL Parser
-
- enum http_parser_url_fields:
- UF_SCHEMA = 0,
- UF_HOST = 1,
- UF_PORT = 2,
- UF_PATH = 3,
- UF_QUERY = 4,
- UF_FRAGMENT = 5,
- UF_USERINFO = 6,
- UF_MAX = 7
-
- struct http_parser_url_field_data:
- uint16_t off
- uint16_t len
-
- struct http_parser_url:
- uint16_t field_set
- uint16_t port
- http_parser_url_field_data[<int>UF_MAX] field_data
-
- void http_parser_url_init(http_parser_url *u)
-
- int http_parser_parse_url(const char *buf,
- size_t buflen,
- int is_connect,
- http_parser_url *u)
|