| libevent
    2.2.1
    Event notification library | 
 
 
 
Go to the documentation of this file.
   27 #ifndef EVENT2_HTTP_H_INCLUDED_ 
   28 #define EVENT2_HTTP_H_INCLUDED_ 
   32 #include <event2/visibility.h> 
   42 struct evhttp_connection;
 
   56 #define HTTP_CONTINUE       100  
   57 #define HTTP_SWITCH_PROTOCOLS   101  
   58 #define HTTP_PROCESSING     102  
   59 #define HTTP_EARLYHINTS     103  
   61 #define HTTP_CREATED        201  
   62 #define HTTP_ACCEPTED       202  
   63 #define HTTP_NONAUTHORITATIVE   203  
   64 #define HTTP_NOCONTENT      204  
   65 #define HTTP_MOVEPERM       301  
   66 #define HTTP_MOVETEMP       302  
   67 #define HTTP_NOTMODIFIED    304  
   68 #define HTTP_BADREQUEST     400  
   69 #define HTTP_UNAUTHORIZED   401  
   70 #define HTTP_PAYMENTREQUIRED    402  
   71 #define HTTP_FORBIDDEN      403  
   72 #define HTTP_NOTFOUND       404  
   73 #define HTTP_BADMETHOD      405      
   74 #define HTTP_ENTITYTOOLARGE 413  
   75 #define HTTP_EXPECTATIONFAILED  417  
   76 #define HTTP_INTERNAL           500      
   77 #define HTTP_NOTIMPLEMENTED     501      
   78 #define HTTP_BADGATEWAY     502  
   79 #define HTTP_SERVUNAVAIL    503  
   82 struct evhttp_request;
 
   84 struct evhttp_bound_socket;
 
   85 struct evconnlistener;
 
  167 struct evhttp_bound_socket *
evhttp_bind_listener(
struct evhttp *http, 
struct evconnlistener *listener);
 
  181 void evhttp_bound_set_bevcb(
struct evhttp_bound_socket *bound, 
struct bufferevent* (*cb)(
struct event_base *, 
void *), 
void *cbarg);
 
  183 typedef void evhttp_bound_socket_foreach_fn(
struct evhttp_bound_socket *, 
void *);
 
  273     const char *content_type);
 
  320     void (*cb)(
struct evhttp_request *, 
void *), 
void *cb_arg);
 
  339     void (*cb)(
struct evhttp_request *, 
void *), 
void *arg);
 
  377     int (*cb)(
struct evhttp_request*, 
void *), 
void *arg);
 
  403     int (*cb)(
struct evhttp_request *req, 
struct evbuffer *buffer, 
int error, 
const char *reason, 
void *cbarg),
 
  430     struct evhttp* vhost);
 
  507 #define EVHTTP_SERVER_LINGERING_CLOSE   0x0001 
  547     const char *reason, 
struct evbuffer *databuf);
 
  599     void (*cb)(
struct evhttp_connection *, 
void *), 
void *arg);
 
  624     EVHTTP_REQ_GET     = 1 << 0,
 
  625     EVHTTP_REQ_POST    = 1 << 1,
 
  626     EVHTTP_REQ_HEAD    = 1 << 2,
 
  627     EVHTTP_REQ_PUT     = 1 << 3,
 
  628     EVHTTP_REQ_DELETE  = 1 << 4,
 
  629     EVHTTP_REQ_OPTIONS = 1 << 5,
 
  630     EVHTTP_REQ_TRACE   = 1 << 6,
 
  631     EVHTTP_REQ_CONNECT = 1 << 7,
 
  632     EVHTTP_REQ_PATCH   = 1 << 8,
 
  633     EVHTTP_REQ_PROPFIND= 1 << 9,
 
  634     EVHTTP_REQ_PROPPATCH=1 << 10,
 
  635     EVHTTP_REQ_MKCOL   = 1 << 11,
 
  636     EVHTTP_REQ_LOCK    = 1 << 12,
 
  637     EVHTTP_REQ_UNLOCK  = 1 << 13,
 
  638     EVHTTP_REQ_COPY    = 1 << 14,
 
  639     EVHTTP_REQ_MOVE    = 1 << 15,
 
  642 #define EVHTTP_REQ_MAX EVHTTP_REQ_MOVE 
  657 #define EVHTTP_METHOD_HAS_BODY 0x0001 
  685     struct event_base *base, 
struct evdns_base *dnsbase, 
struct bufferevent* bev, 
const char *address, ev_uint16_t port);
 
  717 struct evhttp_connection *
 
  739     void (*cb)(
struct evhttp_request *, 
void *), 
void *arg);
 
  750     void (*cb)(
struct evhttp_request *, 
void *));
 
  760     int (*cb)(
struct evhttp_request *, 
void *));
 
  818     void (*cb)(
struct evhttp_request *, 
void *), 
void *cb_arg);
 
  839     struct event_base *base, 
struct evdns_base *dnsbase,
 
  840     const char *address, ev_uint16_t port);
 
  850 #define EVHTTP_CON_REUSE_CONNECTED_ADDR 0x0008 
  854 #define EVHTTP_CON_READ_ON_WRITE_ERROR  0x0010 
  856 #define EVHTTP_CON_LINGERING_CLOSE  0x0020 
  858 #define EVHTTP_CON_PUBLIC_FLAGS_END 0x100000 
  889     evhttp_ext_method_cb cmp);
 
  907 void evhttp_connection_set_max_headers_size(
struct evhttp_connection *evcon,
 
  908     ev_ssize_t new_max_headers_size);
 
  911 void evhttp_connection_set_max_body_size(
struct evhttp_connection* evcon,
 
  912     ev_ssize_t new_max_body_size);
 
  933     const char *address);
 
  965     const struct timeval *tv);
 
  974     const struct timeval *tv);
 
  983     const struct timeval *tv);
 
  992     const struct timeval *tv);
 
 1003 EVENT2_EXPORT_SYMBOL
 
 1005     const struct timeval *tv);
 
 1008 EVENT2_EXPORT_SYMBOL
 
 1013 EVENT2_EXPORT_SYMBOL
 
 1015     void (*)(
struct evhttp_connection *, 
void *), 
void *);
 
 1018 EVENT2_EXPORT_SYMBOL
 
 1020     const char **address, ev_uint16_t *port);
 
 1028 EVENT2_EXPORT_SYMBOL
 
 1029 const struct sockaddr*
 
 1045 EVENT2_EXPORT_SYMBOL
 
 1047     struct evhttp_request *req,
 
 1063 EVENT2_EXPORT_SYMBOL
 
 1072 EVENT2_EXPORT_SYMBOL
 
 1075 EVENT2_EXPORT_SYMBOL
 
 1078 EVENT2_EXPORT_SYMBOL
 
 1081 EVENT2_EXPORT_SYMBOL
 
 1082 int evhttp_request_get_response_code(
const struct evhttp_request *req);
 
 1083 EVENT2_EXPORT_SYMBOL
 
 1084 const char * evhttp_request_get_response_code_line(
const struct evhttp_request *req);
 
 1087 EVENT2_EXPORT_SYMBOL
 
 1090 EVENT2_EXPORT_SYMBOL
 
 1093 EVENT2_EXPORT_SYMBOL
 
 1096 EVENT2_EXPORT_SYMBOL
 
 1102 EVENT2_EXPORT_SYMBOL
 
 1116 EVENT2_EXPORT_SYMBOL
 
 1128 EVENT2_EXPORT_SYMBOL
 
 1140 EVENT2_EXPORT_SYMBOL
 
 1141 int evhttp_add_header(
struct evkeyvalq *headers, 
const char *key, 
const char *value);
 
 1148 EVENT2_EXPORT_SYMBOL
 
 1165 EVENT2_EXPORT_SYMBOL
 
 1182 EVENT2_EXPORT_SYMBOL
 
 1183 char *
evhttp_uriencode(
const char *str, ev_ssize_t size, 
int space_to_plus);
 
 1199 EVENT2_EXPORT_SYMBOL
 
 1217 EVENT2_EXPORT_SYMBOL
 
 1240 EVENT2_EXPORT_SYMBOL
 
 1244 EVENT2_EXPORT_SYMBOL
 
 1261 #define EVHTTP_URI_QUERY_NONCONFORMANT 0x01 
 1268 #define EVHTTP_URI_QUERY_LAST_VAL 0x02 
 1288 EVENT2_EXPORT_SYMBOL
 
 1302 EVENT2_EXPORT_SYMBOL
 
 1308 EVENT2_EXPORT_SYMBOL
 
 1315 EVENT2_EXPORT_SYMBOL
 
 1320 EVENT2_EXPORT_SYMBOL
 
 1326 EVENT2_EXPORT_SYMBOL
 
 1340 EVENT2_EXPORT_SYMBOL
 
 1344 EVENT2_EXPORT_SYMBOL
 
 1347 EVENT2_EXPORT_SYMBOL
 
 1350 EVENT2_EXPORT_SYMBOL
 
 1354 EVENT2_EXPORT_SYMBOL
 
 1358 EVENT2_EXPORT_SYMBOL
 
 1363 EVENT2_EXPORT_SYMBOL
 
 1367 EVENT2_EXPORT_SYMBOL
 
 1371 EVENT2_EXPORT_SYMBOL
 
 1375 EVENT2_EXPORT_SYMBOL
 
 1380 EVENT2_EXPORT_SYMBOL
 
 1384 EVENT2_EXPORT_SYMBOL
 
 1389 EVENT2_EXPORT_SYMBOL
 
 1394 EVENT2_EXPORT_SYMBOL
 
 1431 EVENT2_EXPORT_SYMBOL
 
 1447 #define EVHTTP_URI_NONCONFORMANT 0x01 
 1457 #define EVHTTP_URI_HOST_STRIP_BRACKETS 0x04 
 1464 #define EVHTTP_URI_UNIX_SOCKET 0x08 
 1467 EVENT2_EXPORT_SYMBOL
 
 1477 EVENT2_EXPORT_SYMBOL
 
 1493 EVENT2_EXPORT_SYMBOL
 
 1494 char *
evhttp_uri_join(
const struct evhttp_uri *uri, 
char *buf, 
size_t limit);
 
  
EVENT2_EXPORT_SYMBOL char * evhttp_decode_uri(const char *uri)
Helper function to sort of decode a URI-encoded string.
EVENT2_EXPORT_SYMBOL void evhttp_request_free(struct evhttp_request *req)
Frees the request object and removes associated events.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_family(struct evhttp_connection *evcon, int family)
Set family hint for DNS requests.
EVENT2_EXPORT_SYMBOL void evhttp_foreach_bound_socket(struct evhttp *http, evhttp_bound_socket_foreach_fn *function, void *argument)
Applies the function specified in the first argument to all evhttp_bound_sockets associated with "htt...
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_ext_method_cmp(struct evhttp_connection *evcon, evhttp_ext_method_cb cmp)
Sets extended method cmp callback for this http connection.
EVENT2_EXPORT_SYMBOL struct evkeyvalq * evhttp_request_get_input_headers(struct evhttp_request *req)
Returns the input headers.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_retries(struct evhttp_connection *evcon, int retry_max)
Sets the retry limit for this connection - -1 repeats indefinitely.
EVENT2_EXPORT_SYMBOL int evhttp_remove_server_alias(struct evhttp *http, const char *alias)
Remove a server alias from an http object.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_write_timeout_tv(struct evhttp_connection *evcon, const struct timeval *tv)
Sets the write timeout for this connection.
EVENT2_EXPORT_SYMBOL struct evconnlistener * evhttp_bound_socket_get_listener(struct evhttp_bound_socket *bound)
Return the listener used to implement a bound socket.
EVENT2_EXPORT_SYMBOL struct evhttp * evhttp_connection_get_server(struct evhttp_connection *evcon)
Return the HTTP server associated with this connection, or NULL.
EVENT2_EXPORT_SYMBOL void evhttp_request_set_on_complete_cb(struct evhttp_request *req, void(*cb)(struct evhttp_request *, void *), void *cb_arg)
Set a callback to be called on request completion of evhttp_send_* function.
EVENT2_EXPORT_SYMBOL const struct sockaddr * evhttp_connection_get_addr(struct evhttp_connection *evcon)
Get the remote address associated with this connection.
EVENT2_EXPORT_SYMBOL struct bufferevent * evhttp_connection_get_bufferevent(struct evhttp_connection *evcon)
Return the bufferevent that an evhttp_connection is using.
EVENT2_EXPORT_SYMBOL void evhttp_set_read_timeout_tv(struct evhttp *http, const struct timeval *tv)
Set read timeout for an HTTP request.
EVENT2_EXPORT_SYMBOL evutil_socket_t evhttp_bound_socket_get_fd(struct evhttp_bound_socket *bound_socket)
Get the raw file descriptor referenced by an evhttp_bound_socket.
EVENT2_EXPORT_SYMBOL void evhttp_set_max_headers_size(struct evhttp *http, ev_ssize_t max_headers_size)
XXX Document.
const EVENT2_EXPORT_SYMBOL char * evhttp_request_get_uri(const struct evhttp_request *req)
Returns the request URI.
EVENT2_EXPORT_SYMBOL void evhttp_send_reply_end(struct evhttp_request *req)
Complete a chunked reply, freeing the request as appropriate.
EVENT2_EXPORT_SYMBOL void evhttp_set_bevcb(struct evhttp *http, struct bufferevent *(*cb)(struct event_base *, void *), void *arg)
Set a callback used to create new bufferevents for connections to a given evhttp object.
EVENT2_EXPORT_SYMBOL int evhttp_connection_set_flags(struct evhttp_connection *evcon, int flags)
Set connection flags.
EVENT2_EXPORT_SYMBOL char * evhttp_uri_join(const struct evhttp_uri *uri, char *buf, size_t limit)
Join together the uri parts from parsed data to form a URI-Reference.
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_userinfo(struct evhttp_uri *uri, const char *userinfo)
Set the userinfo of an evhttp_uri, or clear the userinfo if userinfo==NULL.
EVENT2_EXPORT_SYMBOL void evhttp_clear_headers(struct evkeyvalq *headers)
Removes all headers from the header list.
@ EVREQ_HTTP_EOF
EOF reached.
Definition: http.h:775
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_fragment(struct evhttp_uri *uri, const char *fragment)
Set the fragment of an evhttp_uri, or clear the fragment if fragment==NULL.
EVENT2_EXPORT_SYMBOL void evhttp_set_errorcb(struct evhttp *http, int(*cb)(struct evhttp_request *req, struct evbuffer *buffer, int error, const char *reason, void *cbarg), void *cbarg)
Set a callback to output for any error pages sent for requests of a given evhttp object.
EVENT2_EXPORT_SYMBOL void evhttp_uri_free(struct evhttp_uri *uri)
Free all memory allocated for a parsed uri.
EVENT2_EXPORT_SYMBOL void evhttp_request_set_error_cb(struct evhttp_request *, void(*)(enum evhttp_request_error, void *))
Set a callback for errors.
EVENT2_EXPORT_SYMBOL struct evhttp_connection * evhttp_connection_base_bufferevent_reuse_new(struct event_base *base, struct evdns_base *dnsbase, struct bufferevent *bev)
Create and return a connection object that can be used to for making HTTP requests.
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_port(struct evhttp_uri *uri, int port)
Set the port of an evhttp_uri, or clear the port if port==-1.
Structure to hold information and state for a Libevent dispatch loop.
Definition: event.h:219
@ EVREQ_HTTP_BUFFER_ERROR
Error encountered while reading or writing.
Definition: http.h:783
EVENT2_EXPORT_SYMBOL void evhttp_set_allowed_methods(struct evhttp *http, ev_uint32_t methods)
Sets the what HTTP methods are supported in requests accepted by this server, and passed to user call...
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_local_port(struct evhttp_connection *evcon, ev_uint16_t port)
sets the local port from which http connections are made
EVENT2_EXPORT_SYMBOL void evhttp_set_timeout_tv(struct evhttp *http, const struct timeval *tv)
Set read and write timeout for an HTTP request.
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_query(const struct evhttp_uri *uri)
Return the query part of an evhttp_uri (excluding the leading "?"), or NULL if it has no query set.
EVENT2_EXPORT_SYMBOL int evhttp_remove_header(struct evkeyvalq *headers, const char *key)
Removes a header from a list of existing headers.
EVENT2_EXPORT_SYMBOL int evhttp_add_virtual_host(struct evhttp *http, const char *pattern, struct evhttp *vhost)
Adds a virtual host to the http server.
EVENT2_EXPORT_SYMBOL void evhttp_send_reply_start(struct evhttp_request *req, int code, const char *reason)
Initiate a reply that uses Transfer-Encoding chunked.
EVENT2_EXPORT_SYMBOL void evhttp_set_max_body_size(struct evhttp *http, ev_ssize_t max_body_size)
XXX Document.
EVENT2_EXPORT_SYMBOL int evhttp_add_server_alias(struct evhttp *http, const char *alias)
Add a server alias to an http object.
EVENT2_EXPORT_SYMBOL void evhttp_send_reply(struct evhttp_request *req, int code, const char *reason, struct evbuffer *databuf)
Send an HTML reply to the client.
EVENT2_EXPORT_SYMBOL int evhttp_make_request(struct evhttp_connection *evcon, struct evhttp_request *req, enum evhttp_cmd_type type, const char *uri)
Make an HTTP request over the specified connection.
EVENT2_EXPORT_SYMBOL int evhttp_set_cb(struct evhttp *http, const char *path, void(*cb)(struct evhttp_request *, void *), void *cb_arg)
Set a callback for a specified URI.
evhttp_request_error
The different error types supported by evhttp.
Definition: http.h:767
EVENT2_EXPORT_SYMBOL int evhttp_set_flags(struct evhttp *http, int flags)
Set connection flags for HTTP server.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_read_timeout_tv(struct evhttp_connection *evcon, const struct timeval *tv)
Sets the read timeout for this connection.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_local_address(struct evhttp_connection *evcon, const char *address)
Sets the IP address from which http connections are made.
EVENT2_EXPORT_SYMBOL int evhttp_parse_query_str_flags(const char *uri, struct evkeyvalq *headers, unsigned flags)
Helper function to parse out arguments from the query portion of an HTTP URI.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_connect_timeout_tv(struct evhttp_connection *evcon, const struct timeval *tv)
Sets the connect timeout for this connection.
EVENT2_EXPORT_SYMBOL struct event_base * evhttp_connection_get_base(struct evhttp_connection *req)
Returns the underlying event_base for this connection.
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_query(struct evhttp_uri *uri, const char *query)
Set the query of an evhttp_uri, or clear the query if query==NULL.
EVENT2_EXPORT_SYMBOL void evhttp_set_newreqcb(struct evhttp *http, int(*cb)(struct evhttp_request *, void *), void *arg)
Set a callback which allows the user to note or throttle incoming requests.
@ EVREQ_HTTP_REQUEST_CANCEL
The evhttp_cancel_request() called on this request.
Definition: http.h:787
@ EVREQ_HTTP_INVALID_HEADER
Error while reading header, or invalid header.
Definition: http.h:779
EVENT2_EXPORT_SYMBOL int evhttp_uri_get_port(const struct evhttp_uri *uri)
Return the port part of an evhttp_uri, or -1 if there is no port set.
EVENT2_EXPORT_SYMBOL void evhttp_set_timeout(struct evhttp *http, int timeout)
Set the timeout for an HTTP request.
An opaque type for handling buffered IO.
Definition: bufferevent.h:114
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_closecb(struct evhttp_connection *evcon, void(*)(struct evhttp_connection *, void *), void *)
Set a callback for connection close.
EVENT2_EXPORT_SYMBOL void evhttp_request_own(struct evhttp_request *req)
Takes ownership of the request object.
EVENT2_EXPORT_SYMBOL int evhttp_get_connection_count(struct evhttp *http)
Get the current number of connections.
EVENT2_EXPORT_SYMBOL struct evhttp_connection * evhttp_connection_base_bufferevent_new(struct event_base *base, struct evdns_base *dnsbase, struct bufferevent *bev, const char *address, ev_uint16_t port)
Create and return a connection object that can be used to for making HTTP requests.
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_path(const struct evhttp_uri *uri)
Return the path part of an evhttp_uri, or NULL if it has no path set.
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_path(struct evhttp_uri *uri, const char *path)
Set the path of an evhttp_uri, or clear the path if path==NULL.
EVENT2_EXPORT_SYMBOL int evhttp_accept_socket(struct evhttp *http, evutil_socket_t fd)
Makes an HTTP server accept connections on the specified socket.
EVENT2_EXPORT_SYMBOL struct evbuffer * evhttp_request_get_input_buffer(struct evhttp_request *req)
Returns the input buffer.
EVENT2_EXPORT_SYMBOL int evhttp_remove_virtual_host(struct evhttp *http, struct evhttp *vhost)
Removes a virtual host from the http server.
EVENT2_EXPORT_SYMBOL void evhttp_free(struct evhttp *http)
Free the previously created HTTP server.
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_host(struct evhttp_uri *uri, const char *host)
Set the host of an evhttp_uri, or clear the host if host==NULL.
structure that is passed to (and modified by) the extended method callback function
Definition: http.h:651
An evbuffer is an opaque data type for efficiently buffering data to be sent or received on the netwo...
Definition: buffer.h:97
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_initial_retry_tv(struct evhttp_connection *evcon, const struct timeval *tv)
Sets the delay before retrying requests on this connection.
EVENT2_EXPORT_SYMBOL struct evbuffer * evhttp_request_get_output_buffer(struct evhttp_request *req)
Returns the output buffer.
const EVENT2_EXPORT_SYMBOL char * evhttp_request_get_host(struct evhttp_request *req)
Returns the host associated with the request.
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_userinfo(const struct evhttp_uri *uri)
Return the userinfo part of an evhttp_uri, or NULL if it has no userinfo set.
EVENT2_EXPORT_SYMBOL enum evhttp_cmd_type evhttp_request_get_command(const struct evhttp_request *req)
Returns the request command.
EVENT2_EXPORT_SYMBOL struct evhttp * evhttp_new(struct event_base *base)
Create a new HTTP server.
EVENT2_EXPORT_SYMBOL int evhttp_request_is_owned(struct evhttp_request *req)
Returns 1 if the request is owned by the user.
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_timeout(struct evhttp_connection *evcon, int timeout)
Sets the timeout for this connection.
EVENT2_EXPORT_SYMBOL struct evhttp_request * evhttp_request_new(void(*cb)(struct evhttp_request *, void *), void *arg)
Creates a new request object that needs to be filled in with the request parameters.
EVENT2_EXPORT_SYMBOL void evhttp_connection_free_on_completion(struct evhttp_connection *evcon)
Disowns a given connection object.
EVENT2_EXPORT_SYMBOL struct evhttp_bound_socket * evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t port)
Like evhttp_bind_socket(), but returns a handle for referencing the socket.
EVENT2_EXPORT_SYMBOL int evhttp_parse_query(const char *uri, struct evkeyvalq *headers)
Helper function to parse out arguments in a query.
EVENT2_EXPORT_SYMBOL struct evhttp_uri * evhttp_uri_new(void)
Return a new empty evhttp_uri with no fields set.
EVENT2_EXPORT_SYMBOL int evhttp_bind_socket(struct evhttp *http, const char *address, ev_uint16_t port)
Binds an HTTP server on the specified address and port.
EVENT2_EXPORT_SYMBOL struct evhttp_connection * evhttp_connection_base_bufferevent_unix_new(struct event_base *base, struct bufferevent *bev, const char *path)
Create and return a connection object that can be used to for making HTTP requests over an unix domai...
EVENT2_EXPORT_SYMBOL void evhttp_set_write_timeout_tv(struct evhttp *http, const struct timeval *tv)
Set write timeout for an HTTP request.
EVENT2_EXPORT_SYMBOL struct evhttp_uri * evhttp_uri_parse_with_flags(const char *source_uri, unsigned flags)
Helper function to parse a URI-Reference as specified by RFC3986.
EVENT2_EXPORT_SYMBOL void evhttp_del_accept_socket(struct evhttp *http, struct evhttp_bound_socket *bound_socket)
Makes an HTTP server stop accepting connections on the specified socket.
EVENT2_EXPORT_SYMBOL void evhttp_send_reply_chunk(struct evhttp_request *req, struct evbuffer *databuf)
Send another data chunk as part of an ongoing chunked reply.
evhttp_cmd_type
The different request types supported by evhttp.
Definition: http.h:623
evhttp_request_kind
a request object can represent either a request or a reply
Definition: http.h:660
EVENT2_EXPORT_SYMBOL struct evhttp_uri * evhttp_uri_parse(const char *source_uri)
Alias for evhttp_uri_parse_with_flags(source_uri, 0)
EVENT2_EXPORT_SYMBOL void evhttp_connection_set_timeout_tv(struct evhttp_connection *evcon, const struct timeval *tv)
Sets the timeout for this connection for the following events:
EVENT2_EXPORT_SYMBOL void evhttp_request_set_header_cb(struct evhttp_request *, int(*cb)(struct evhttp_request *, void *))
Register callback for additional parsing of request headers.
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_unixsocket(const struct evhttp_uri *uri)
Return the unix socket part of an evhttp_uri, or NULL if there is no unix socket set.
EVENT2_EXPORT_SYMBOL void evhttp_request_set_chunked_cb(struct evhttp_request *, void(*cb)(struct evhttp_request *, void *))
Enable delivery of chunks to requestor.
EVENT2_EXPORT_SYMBOL void evhttp_connection_free(struct evhttp_connection *evcon)
Frees an http connection.
EVENT2_EXPORT_SYMBOL struct evhttp_connection * evhttp_connection_base_new(struct event_base *base, struct evdns_base *dnsbase, const char *address, ev_uint16_t port)
Create and return a connection object that can be used to for making HTTP requests.
@ EVREQ_HTTP_DATA_TOO_LONG
Body is greater then evhttp_connection_set_max_body_size()
Definition: http.h:791
EVENT2_EXPORT_SYMBOL void evhttp_set_default_content_type(struct evhttp *http, const char *content_type)
Set the value to use for the Content-Type header when none was provided.
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_fragment(const struct evhttp_uri *uri)
Return the fragment part of an evhttp_uri (excluding the leading "#"), or NULL if it has no fragment ...
EVENT2_EXPORT_SYMBOL void evhttp_connection_get_peer(struct evhttp_connection *evcon, const char **address, ev_uint16_t *port)
Get the remote address and port associated with this connection.
EVENT2_EXPORT_SYMBOL void evhttp_set_max_connections(struct evhttp *http, int max_connections)
Set the maximum number of simultaneous connections for this server.
EVENT2_EXPORT_SYMBOL int evhttp_add_header(struct evkeyvalq *headers, const char *key, const char *value)
Adds a header to a list of existing headers.
EVENT2_EXPORT_SYMBOL void evhttp_uri_set_flags(struct evhttp_uri *uri, unsigned flags)
Changes the flags set on a given URI.
EVENT2_EXPORT_SYMBOL int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers)
EVENT2_EXPORT_SYMBOL void evhttp_send_error(struct evhttp_request *req, int error, const char *reason)
Send an HTML error message to the client.
@ EVREQ_HTTP_TIMEOUT
Timeout reached, also.
Definition: http.h:771
EVENT2_EXPORT_SYMBOL char * evhttp_encode_uri(const char *str)
Helper function to encode a string for inclusion in a URI.
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_unixsocket(struct evhttp_uri *uri, const char *unixsocket)
Set the unix socket of an evhttp_uri, or clear the unix socket if unixsocket==NULL.
EVENT2_EXPORT_SYMBOL char * evhttp_uridecode(const char *uri, int decode_plus, size_t *size_out)
Helper function to decode a URI-escaped string or HTTP parameter.
EVENT2_EXPORT_SYMBOL void evhttp_cancel_request(struct evhttp_request *req)
Cancels a pending HTTP request.
EVENT2_EXPORT_SYMBOL const struct evhttp_uri * evhttp_request_get_evhttp_uri(const struct evhttp_request *req)
Returns the request URI (parsed)
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_scheme(const struct evhttp_uri *uri)
Return the scheme of an evhttp_uri, or NULL if there is no scheme has been set and the evhttp_uri con...
EVENT2_EXPORT_SYMBOL int evhttp_uri_set_scheme(struct evhttp_uri *uri, const char *scheme)
Set the scheme of an evhttp_uri, or clear the scheme if scheme==NULL.
EVENT2_EXPORT_SYMBOL struct evkeyvalq * evhttp_request_get_output_headers(struct evhttp_request *req)
Returns the output headers.
const EVENT2_EXPORT_SYMBOL char * evhttp_find_header(const struct evkeyvalq *headers, const char *key)
Finds the value belonging to a header.
EVENT2_EXPORT_SYMBOL struct evhttp_connection * evhttp_request_get_connection(struct evhttp_request *req)
Returns the connection object associated with the request or NULL.
EVENT2_EXPORT_SYMBOL void evhttp_set_gencb(struct evhttp *http, void(*cb)(struct evhttp_request *, void *), void *arg)
Set a callback for all requests that are not caught by specific callbacks.
Common convenience functions for cross-platform portability and related socket manipulations.
EVENT2_EXPORT_SYMBOL char * evhttp_uriencode(const char *str, ev_ssize_t size, int space_to_plus)
As evhttp_encode_uri, but if 'size' is nonnegative, treat the string as being 'size' bytes long.
EVENT2_EXPORT_SYMBOL void evhttp_set_ext_method_cmp(struct evhttp *http, evhttp_ext_method_cb cmp)
Sets the callback function which allows HTTP extended methods to be supported by this server.
EVENT2_EXPORT_SYMBOL struct evhttp_bound_socket * evhttp_bind_listener(struct evhttp *http, struct evconnlistener *listener)
The most low-level evhttp_bind/accept method: takes an evconnlistener, and returns an evhttp_bound_so...
EVENT2_EXPORT_SYMBOL void evhttp_send_reply_chunk_with_cb(struct evhttp_request *req, struct evbuffer *databuf, void(*cb)(struct evhttp_connection *, void *), void *arg)
Send another data chunk as part of an ongoing chunked reply.
const EVENT2_EXPORT_SYMBOL char * evhttp_uri_get_host(const struct evhttp_uri *uri)
Return the host part of an evhttp_uri, or NULL if it has no host set.
EVENT2_EXPORT_SYMBOL char * evhttp_htmlescape(const char *html)
Escape HTML character entities in a string.
EVENT2_EXPORT_SYMBOL struct evhttp_bound_socket * evhttp_accept_socket_with_handle(struct evhttp *http, evutil_socket_t fd)
Like evhttp_accept_socket(), but returns a handle for referencing the socket.
#define evutil_socket_t
A type wide enough to hold the output of "socket()" or "accept()".
Definition: util.h:325
EVENT2_EXPORT_SYMBOL int evhttp_del_cb(struct evhttp *, const char *)
Removes the callback for a specified URI.