#include <event.h>
Go to the source code of this file.
Data Structures | |
struct | evhttp_request |
the request structure that a server receives. More... | |
Defines | |
#define | EVHTTP_PROXY_REQUEST 0x0002 |
#define | EVHTTP_REQ_OWN_CONNECTION 0x0001 |
#define | HTTP_BADREQUEST 400 |
#define | HTTP_MOVEPERM 301 |
#define | HTTP_MOVETEMP 302 |
#define | HTTP_NOCONTENT 204 |
#define | HTTP_NOTFOUND 404 |
#define | HTTP_NOTMODIFIED 304 |
#define | HTTP_OK 200 |
#define | HTTP_SERVUNAVAIL 503 |
Enumerations | |
enum | evhttp_cmd_type { EVHTTP_REQ_GET, EVHTTP_REQ_POST, EVHTTP_REQ_HEAD } |
enum | evhttp_request_kind { EVHTTP_REQUEST, EVHTTP_RESPONSE } |
Functions | |
int | evhttp_accept_socket (struct evhttp *http, int fd) |
Makes an HTTP server accept connections on the specified socket. | |
int | evhttp_add_header (struct evkeyvalq *, const char *, const char *) |
int | evhttp_bind_socket (struct evhttp *http, const char *address, u_short port) |
Binds an HTTP server on the specified address and port. | |
void | evhttp_clear_headers (struct evkeyvalq *) |
void | evhttp_connection_free (struct evhttp_connection *evcon) |
Frees an http connection. | |
void | evhttp_connection_get_peer (struct evhttp_connection *evcon, char **address, u_short *port) |
Get the remote address and port associated with this connection. | |
evhttp_connection * | evhttp_connection_new (const char *address, unsigned short port) |
A connection object that can be used to for making HTTP requests. | |
void | evhttp_connection_set_base (struct evhttp_connection *evcon, struct event_base *base) |
Associates an event base with the connection - can only be called on a freshly created connection object that has not been used yet. | |
void | evhttp_connection_set_closecb (struct evhttp_connection *evcon, void(*)(struct evhttp_connection *, void *), void *) |
Set a callback for connection close. | |
void | evhttp_connection_set_local_address (struct evhttp_connection *evcon, const char *address) |
sets the ip address from which http connections are made | |
void | evhttp_connection_set_local_port (struct evhttp_connection *evcon, unsigned short port) |
sets the local port from which http connections are made | |
void | evhttp_connection_set_retries (struct evhttp_connection *evcon, int retry_max) |
Sets the retry limit for this connection - -1 repeats indefnitely. | |
void | evhttp_connection_set_timeout (struct evhttp_connection *evcon, int timeout_in_secs) |
Sets the timeout for events related to this connection. | |
char * | evhttp_decode_uri (const char *uri) |
Helper function to decode a URI. | |
int | evhttp_del_cb (struct evhttp *, const char *) |
Removes the callback for a specified URI. | |
char * | evhttp_encode_uri (const char *uri) |
Helper function to encode a URI. | |
const char * | evhttp_find_header (const struct evkeyvalq *, const char *) |
void | evhttp_free (struct evhttp *http) |
Free the previously created HTTP server. | |
char * | evhttp_htmlescape (const char *html) |
Escape HTML character entities in a string. | |
int | evhttp_make_request (struct evhttp_connection *evcon, struct evhttp_request *req, enum evhttp_cmd_type type, const char *uri) |
The connection gets ownership of the request. | |
evhttp * | evhttp_new (struct event_base *base) |
Create a new HTTP server. | |
void | evhttp_parse_query (const char *uri, struct evkeyvalq *headers) |
Helper function to parse out arguments in a query. | |
int | evhttp_remove_header (struct evkeyvalq *, const char *) |
void | evhttp_request_free (struct evhttp_request *req) |
Frees the request object and removes associated events. | |
evhttp_connection * | evhttp_request_get_connection (struct evhttp_request *req) |
Returns the connection object associated with the request or NULL. | |
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. | |
void | evhttp_request_set_chunked_cb (struct evhttp_request *, void(*cb)(struct evhttp_request *, void *)) |
enable delivery of chunks to requestor | |
const char * | evhttp_request_uri (struct evhttp_request *req) |
void | evhttp_send_error (struct evhttp_request *req, int error, const char *reason) |
Send an HTML error message to the client. | |
void | evhttp_send_reply (struct evhttp_request *req, int code, const char *reason, struct evbuffer *databuf) |
Send an HTML reply to the client. | |
void | evhttp_send_reply_chunk (struct evhttp_request *, struct evbuffer *) |
void | evhttp_send_reply_end (struct evhttp_request *) |
void | evhttp_send_reply_start (struct evhttp_request *, int, const char *) |
void | evhttp_set_cb (struct evhttp *, const char *, void(*)(struct evhttp_request *, void *), void *) |
Set a callback for a specified URI. | |
void | evhttp_set_gencb (struct evhttp *, void(*)(struct evhttp_request *, void *), void *) |
Set a callback for all requests that are not caught by specific callbacks. | |
void | evhttp_set_timeout (struct evhttp *, int timeout_in_secs) |
Set the timeout for an HTTP request. | |
evhttp * | evhttp_start (const char *address, u_short port) |
Start an HTTP server on the specified address and port. |
As libevent is a library for dealing with event notification and most interesting applications are networked today, I have often found the need to write HTTP code. The following prototypes and definitions provide an application with a minimal interface for making HTTP requests and for creating a very simple HTTP server.
|
Makes an HTTP server accept connections on the specified socket. This may be useful to create a socket and then fork multiple instances of an http server, or when a socket has been communicated via file descriptor passing in situations where an http servers does not have permissions to bind to a low-numbered port. Can be called multiple times to have the http server listen to multiple different sockets.
|
|
Binds an HTTP server on the specified address and port. Can be called multiple times to bind the same http server to multiple different ports.
|
|
A connection object that can be used to for making HTTP requests. The connection object tries to establish the connection when it is given an http request object. |
|
Helper function to decode a URI. The returned string must be freed by the caller.
|
|
Helper function to encode a URI. The returned string must be freed by the caller.
|
|
Free the previously created HTTP server. Works only if no requests are currently being served.
|
|
Escape HTML character entities in a string. Replaces <, >, ", ' and & with <, >, ", ' and & correspondingly. The returned string needs to be freed by the caller.
|
|
Create a new HTTP server.
|
|
Helper function to parse out arguments in a query. Parsing a uri like http://foo.com/?q=test&s=some+thing will result in two entries in the key value queue. The first entry is: key="q", value="test" The second entry is: key="s", value="some thing"
|
|
Creates a new request object that needs to be filled in with the request parameters. The callback is executed when the request completed or an error occurred. |
|
Send an HTML error message to the client.
|
|
Send an HTML reply to the client.
|
|
Set the timeout for an HTTP request.
|
|
Start an HTTP server on the specified address and port. DEPRECATED: it does not allow an event base to be specified
|