10 #ifndef _HTTP_INTERNAL_H_
11 #define _HTTP_INTERNAL_H_
14 #include "util-internal.h"
15 #include "defer-internal.h"
17 #define HTTP_CONNECT_TIMEOUT 45
18 #define HTTP_WRITE_TIMEOUT 50
19 #define HTTP_READ_TIMEOUT 50
21 #define HTTP_PREFIX "http://"
22 #define HTTP_DEFAULTPORT 80
24 enum message_read_status {
26 MORE_DATA_EXPECTED = 0,
28 REQUEST_CANCELED = -2,
32 enum evhttp_connection_error {
35 EVCON_HTTP_INVALID_HEADER,
36 EVCON_HTTP_BUFFER_ERROR,
37 EVCON_HTTP_REQUEST_CANCEL
45 #define _EVHTTP_REQ_UNKNOWN (1<<15)
47 enum evhttp_connection_state {
51 EVCON_READING_FIRSTLINE,
53 EVCON_READING_HEADERS,
55 EVCON_READING_TRAILER,
70 struct event retry_ev;
78 size_t max_headers_size;
79 ev_uint64_t max_body_size;
82 #define EVHTTP_CON_INCOMING 0x0001
83 #define EVHTTP_CON_OUTGOING 0x0002
84 #define EVHTTP_CON_CLOSEDETECT 0x0004
90 enum evhttp_connection_state state;
93 struct evhttp *http_server;
138 TAILQ_ENTRY(
evhttp) next_vhost;
143 TAILQ_HEAD(httpcbq,
evhttp_cb) callbacks;
146 struct evconq connections;
148 TAILQ_HEAD(vhostsq,
evhttp) virtualhosts;
157 size_t default_max_headers_size;
158 ev_uint64_t default_max_body_size;
162 ev_uint16_t allowed_methods;
182 enum evhttp_connection_error error);
184 enum message_read_status;
192 void evhttp_response_code(
struct evhttp_request *,
int,
const char *);
Structure to represent a single event.
Definition: event_struct.h:87
#define evutil_socket_t
A type wide enough to hold the output of "socket()" or "accept()".
Definition: util.h:278
Definition: http-internal.h:110
Definition: evbuffer-internal.h:78
Structures used by event.h.
Definition: http-internal.h:62
Definition: http-internal.h:123
A deferred_cb is a callback that can be scheduled to run as part of an event_base's event_loop...
Definition: defer-internal.h:42
Shared implementation of a bufferevent.
Definition: bufferevent_struct.h:70
Definition: http-internal.h:136
Definition: http-internal.h:130
Definition: event-internal.h:167
Definition: listener.c:74
the request structure that a server receives.
Definition: http_struct.h:57