aboutsummaryrefslogtreecommitdiff
path: root/include/event2/http.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/event2/http.h')
-rw-r--r--include/event2/http.h356
1 files changed, 15 insertions, 341 deletions
diff --git a/include/event2/http.h b/include/event2/http.h
index 8fb5642..c6ee1db 100644
--- a/include/event2/http.h
+++ b/include/event2/http.h
@@ -24,12 +24,11 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef EVENT2_HTTP_H_INCLUDED_
-#define EVENT2_HTTP_H_INCLUDED_
+#ifndef _EVENT2_HTTP_H_
+#define _EVENT2_HTTP_H_
/* For int types. */
#include <event2/util.h>
-#include <event2/visibility.h>
#ifdef __cplusplus
extern "C" {
@@ -38,8 +37,6 @@ extern "C" {
/* In case we haven't included the right headers yet. */
struct evbuffer;
struct event_base;
-struct bufferevent;
-struct evhttp_connection;
/** @file event2/http.h
*
@@ -72,7 +69,6 @@ struct evhttp_request;
struct evkeyvalq;
struct evhttp_bound_socket;
struct evconnlistener;
-struct evdns_base;
/**
* Create a new HTTP server.
@@ -81,7 +77,6 @@ struct evdns_base;
* @return a pointer to a newly initialized evhttp server structure
* @see evhttp_free()
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp *evhttp_new(struct event_base *base);
/**
@@ -96,7 +91,6 @@ struct evhttp *evhttp_new(struct event_base *base);
* @return 0 on success, -1 on failure.
* @see evhttp_accept_socket()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_bind_socket(struct evhttp *http, const char *address, ev_uint16_t port);
/**
@@ -110,7 +104,6 @@ int evhttp_bind_socket(struct evhttp *http, const char *address, ev_uint16_t por
* @return Handle for the socket on success, NULL on failure.
* @see evhttp_bind_socket(), evhttp_del_accept_socket()
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_bound_socket *evhttp_bind_socket_with_handle(struct evhttp *http, const char *address, ev_uint16_t port);
/**
@@ -129,7 +122,6 @@ struct evhttp_bound_socket *evhttp_bind_socket_with_handle(struct evhttp *http,
* @return 0 on success, -1 on failure.
* @see evhttp_bind_socket()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_accept_socket(struct evhttp *http, evutil_socket_t fd);
/**
@@ -142,7 +134,6 @@ int evhttp_accept_socket(struct evhttp *http, evutil_socket_t fd);
* @return Handle for the socket on success, NULL on failure.
* @see evhttp_accept_socket(), evhttp_del_accept_socket()
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_bound_socket *evhttp_accept_socket_with_handle(struct evhttp *http, evutil_socket_t fd);
/**
@@ -150,29 +141,13 @@ struct evhttp_bound_socket *evhttp_accept_socket_with_handle(struct evhttp *http
* returns an evhttp_bound_socket. The listener will be freed when the bound
* socket is freed.
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_bound_socket *evhttp_bind_listener(struct evhttp *http, struct evconnlistener *listener);
/**
* Return the listener used to implement a bound socket.
*/
-EVENT2_EXPORT_SYMBOL
struct evconnlistener *evhttp_bound_socket_get_listener(struct evhttp_bound_socket *bound);
-typedef void evhttp_bound_socket_foreach_fn(struct evhttp_bound_socket *, void *);
-/**
- * Applies the function specified in the first argument to all
- * evhttp_bound_sockets associated with "http". The user must not
- * attempt to free or remove any connections, sockets or listeners
- * in the callback "function".
- *
- * @param http pointer to an evhttp object
- * @param function function to apply to every bound socket
- * @param argument pointer value passed to function for every socket iterated
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_foreach_bound_socket(struct evhttp *http, evhttp_bound_socket_foreach_fn *function, void *argument);
-
/**
* Makes an HTTP server stop accepting connections on the specified socket
*
@@ -190,7 +165,6 @@ void evhttp_foreach_bound_socket(struct evhttp *http, evhttp_bound_socket_foreac
* @param bound_socket a handle returned by evhttp_{bind,accept}_socket_with_handle
* @see evhttp_bind_socket_with_handle(), evhttp_accept_socket_with_handle()
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_del_accept_socket(struct evhttp *http, struct evhttp_bound_socket *bound_socket);
/**
@@ -200,7 +174,6 @@ void evhttp_del_accept_socket(struct evhttp *http, struct evhttp_bound_socket *b
* @return the file descriptor used by the bound socket
* @see evhttp_bind_socket_with_handle(), evhttp_accept_socket_with_handle()
*/
-EVENT2_EXPORT_SYMBOL
evutil_socket_t evhttp_bound_socket_get_fd(struct evhttp_bound_socket *bound_socket);
/**
@@ -211,29 +184,14 @@ evutil_socket_t evhttp_bound_socket_get_fd(struct evhttp_bound_socket *bound_soc
* @param http the evhttp server object to be freed
* @see evhttp_start()
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_free(struct evhttp* http);
/** XXX Document. */
-EVENT2_EXPORT_SYMBOL
void evhttp_set_max_headers_size(struct evhttp* http, ev_ssize_t max_headers_size);
/** XXX Document. */
-EVENT2_EXPORT_SYMBOL
void evhttp_set_max_body_size(struct evhttp* http, ev_ssize_t max_body_size);
/**
- Set the value to use for the Content-Type header when none was provided. If
- the content type string is NULL, the Content-Type header will not be
- automatically added.
-
- @param http the http server on which to set the default content type
- @param content_type the value for the Content-Type header
-*/
-EVENT2_EXPORT_SYMBOL
-void evhttp_set_default_content_type(struct evhttp *http,
- const char *content_type);
-
-/**
Sets the what HTTP methods are supported in requests accepted by this
server, and passed to user callbacks.
@@ -244,7 +202,6 @@ void evhttp_set_default_content_type(struct evhttp *http,
@param http the http server on which to set the methods
@param methods bit mask constructed from evhttp_cmd_type values
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_set_allowed_methods(struct evhttp* http, ev_uint16_t methods);
/**
@@ -256,12 +213,10 @@ void evhttp_set_allowed_methods(struct evhttp* http, ev_uint16_t methods);
@param cb_arg an additional context argument for the callback
@return 0 on success, -1 if the callback existed already, -2 on failure
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_set_cb(struct evhttp *http, const char *path,
void (*cb)(struct evhttp_request *, void *), void *cb_arg);
/** Removes the callback for a specified URI */
-EVENT2_EXPORT_SYMBOL
int evhttp_del_cb(struct evhttp *, const char *);
/**
@@ -275,29 +230,10 @@ int evhttp_del_cb(struct evhttp *, const char *);
@param cb the callback to invoke for any unmatched requests
@param arg an context argument for the callback
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_set_gencb(struct evhttp *http,
void (*cb)(struct evhttp_request *, void *), void *arg);
/**
- Set a callback used to create new bufferevents for connections
- to a given evhttp object.
-
- You can use this to override the default bufferevent type -- for example,
- to make this evhttp object use SSL bufferevents rather than unencrypted
- ones.
-
- New bufferevents must be allocated with no fd set on them.
-
- @param http the evhttp server object for which to set the callback
- @param cb the callback to invoke for incoming connections
- @param arg an context argument for the callback
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_set_bevcb(struct evhttp *http,
- struct bufferevent *(*cb)(struct event_base *, void *), void *arg);
-
-/**
Adds a virtual host to the http server.
A virtual host is a newly initialized evhttp object that has request
@@ -319,7 +255,6 @@ void evhttp_set_bevcb(struct evhttp *http,
@return 0 on success, -1 on failure
@see evhttp_remove_virtual_host()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_add_virtual_host(struct evhttp* http, const char *pattern,
struct evhttp* vhost);
@@ -331,7 +266,6 @@ int evhttp_add_virtual_host(struct evhttp* http, const char *pattern,
@return 0 on success, -1 on failure
@see evhttp_add_virtual_host()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_remove_virtual_host(struct evhttp* http, struct evhttp* vhost);
/**
@@ -342,7 +276,6 @@ int evhttp_remove_virtual_host(struct evhttp* http, struct evhttp* vhost);
@param alias the alias to add
@see evhttp_add_remove_alias()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_add_server_alias(struct evhttp *http, const char *alias);
/**
@@ -352,7 +285,6 @@ int evhttp_add_server_alias(struct evhttp *http, const char *alias);
@param alias the alias to remove
@see evhttp_add_server_alias()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_remove_server_alias(struct evhttp *http, const char *alias);
/**
@@ -361,31 +293,8 @@ int evhttp_remove_server_alias(struct evhttp *http, const char *alias);
* @param http an evhttp object
* @param timeout_in_secs the timeout, in seconds
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_set_timeout(struct evhttp *http, int timeout_in_secs);
-/**
- * Set the timeout for an HTTP request.
- *
- * @param http an evhttp object
- * @param tv the timeout, or NULL
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_set_timeout_tv(struct evhttp *http, const struct timeval* tv);
-
-/* Read all the clients body, and only after this respond with an error if the
- * clients body exceed max_body_size */
-#define EVHTTP_SERVER_LINGERING_CLOSE 0x0001
-/**
- * Set connection flags for HTTP server.
- *
- * @see EVHTTP_SERVER_*
- * @return 0 on success, otherwise non zero (for example if flag doesn't
- * supported).
- */
-EVENT2_EXPORT_SYMBOL
-int evhttp_set_flags(struct evhttp *http, int flags);
-
/* Request/Response functionality */
/**
@@ -396,7 +305,6 @@ int evhttp_set_flags(struct evhttp *http, int flags);
* @param reason a brief explanation of the error. If this is NULL, we'll
* just use the standard meaning of the error code.
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_send_error(struct evhttp_request *req, int error,
const char *reason);
@@ -413,7 +321,6 @@ void evhttp_send_error(struct evhttp_request *req, int error,
* @param reason a brief message to send with the response code
* @param databuf the body of the response
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_send_reply(struct evhttp_request *req, int code,
const char *reason, struct evbuffer *databuf);
@@ -433,7 +340,6 @@ void evhttp_send_reply(struct evhttp_request *req, int code,
@param code the HTTP response code to send
@param reason a brief message to send with the response code
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_send_reply_start(struct evhttp_request *req, int code,
const char *reason);
@@ -448,33 +354,13 @@ void evhttp_send_reply_start(struct evhttp_request *req, int code,
@param req a request object
@param databuf the data chunk to send as part of the reply.
*/
-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.
-
- The reply chunk consists of the data in databuf. After calling
- evhttp_send_reply_chunk() databuf will be empty, but the buffer is
- still owned by the caller and needs to be deallocated by the caller
- if necessary.
-
- @param req a request object
- @param databuf the data chunk to send as part of the reply.
- @param cb callback funcion
- @param call back's argument.
-*/
-EVENT2_EXPORT_SYMBOL
-void evhttp_send_reply_chunk_with_cb(struct evhttp_request *, struct evbuffer *,
- void (*cb)(struct evhttp_connection *, void *), void *arg);
-
/**
Complete a chunked reply, freeing the request as appropriate.
@param req a request object
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_send_reply_end(struct evhttp_request *req);
/*
@@ -504,42 +390,10 @@ enum evhttp_cmd_type {
enum evhttp_request_kind { EVHTTP_REQUEST, EVHTTP_RESPONSE };
/**
- * Create and return a connection object that can be used to for making HTTP
- * requests. The connection object tries to resolve address and establish the
- * connection when it is given an http request object.
- *
- * @param base the event_base to use for handling the connection
- * @param dnsbase the dns_base to use for resolving host names; if not
- * specified host name resolution will block.
- * @param bev a bufferevent to use for connecting to the server; if NULL, a
- * socket-based bufferevent will be created. This buffrevent will be freed
- * when the connection closes. It must have no fd set on it.
- * @param address the address to which to connect
- * @param port the port to connect to
- * @return an evhttp_connection object that can be used for making requests
- */
-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);
-
-/**
- * Return the bufferevent that an evhttp_connection is using.
- */
-EVENT2_EXPORT_SYMBOL
-struct bufferevent* evhttp_connection_get_bufferevent(struct evhttp_connection *evcon);
-
-/**
- * Return the HTTP server associated with this connection, or NULL.
- */
-EVENT2_EXPORT_SYMBOL
-struct evhttp *evhttp_connection_get_server(struct evhttp_connection *evcon);
-
-/**
* 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.
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_request *evhttp_request_new(
void (*cb)(struct evhttp_request *, void *), void *arg);
@@ -550,86 +404,18 @@ struct evhttp_request *evhttp_request_new(
* response. May drain the input buffer; it will be drained
* automatically on return.
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_request_set_chunked_cb(struct evhttp_request *,
void (*cb)(struct evhttp_request *, void *));
-/**
- * Register callback for additional parsing of request headers.
- * @param cb will be called after receiving and parsing the full header.
- * It allows analyzing the header and possibly closing the connection
- * by returning a value < 0.
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_request_set_header_cb(struct evhttp_request *,
- int (*cb)(struct evhttp_request *, void *));
-
-/**
- * The different error types supported by evhttp
- *
- * @see evhttp_request_set_error_cb()
- */
-enum evhttp_request_error {
- /**
- * Timeout reached, also @see evhttp_connection_set_timeout()
- */
- EVREQ_HTTP_TIMEOUT,
- /**
- * EOF reached
- */
- EVREQ_HTTP_EOF,
- /**
- * Error while reading header, or invalid header
- */
- EVREQ_HTTP_INVALID_HEADER,
- /**
- * Error encountered while reading or writing
- */
- EVREQ_HTTP_BUFFER_ERROR,
- /**
- * The evhttp_cancel_request() called on this request.
- */
- EVREQ_HTTP_REQUEST_CANCEL,
- /**
- * Body is greater then evhttp_connection_set_max_body_size()
- */
- EVREQ_HTTP_DATA_TOO_LONG
-};
-/**
- * Set a callback for errors
- * @see evhttp_request_error for error types.
- *
- * On error, both the error callback and the regular callback will be called,
- * error callback is called before the regular callback.
- **/
-EVENT2_EXPORT_SYMBOL
-void evhttp_request_set_error_cb(struct evhttp_request *,
- void (*)(enum evhttp_request_error, void *));
-
-/**
- * Set a callback to be called on request completion of evhttp_send_* function.
- *
- * The callback function will be called on the completion of the request after
- * the output data has been written and before the evhttp_request object
- * is destroyed. This can be useful for tracking resources associated with a
- * request (ex: timing metrics).
- *
- * @param req a request object
- * @param cb callback function that will be called on request completion
- * @param cb_arg an additional context argument for the callback
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_request_set_on_complete_cb(struct evhttp_request *req,
- void (*cb)(struct evhttp_request *, void *), void *cb_arg);
-
/** Frees the request object and removes associated events. */
-EVENT2_EXPORT_SYMBOL
void evhttp_request_free(struct evhttp_request *req);
+struct evdns_base;
+
/**
- * Create and return a connection object that can be used to for making HTTP
- * requests. The connection object tries to resolve address and establish the
- * connection when it is given an http request object.
+ * A connection object that can be used to for making HTTP requests. The
+ * connection object tries to resolve address and establish the connection
+ * when it is given an http request object.
*
* @param base the event_base to use for handling the connection
* @param dnsbase the dns_base to use for resolving host names; if not
@@ -638,49 +424,24 @@ void evhttp_request_free(struct evhttp_request *req);
* @param port the port to connect to
* @return an evhttp_connection object that can be used for making requests
*/
-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);
+ const char *address, unsigned short port);
/**
- * Set family hint for DNS requests.
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_connection_set_family(struct evhttp_connection *evcon,
- int family);
-
-/* reuse connection address on retry */
-#define EVHTTP_CON_REUSE_CONNECTED_ADDR 0x0008
-/* Try to read error, since server may already send and close
- * connection, but if at that time we have some data to send then we
- * can send get EPIPE and fail, while we can read that HTTP error. */
-#define EVHTTP_CON_READ_ON_WRITE_ERROR 0x0010
-/* @see EVHTTP_SERVER_LINGERING_CLOSE */
-#define EVHTTP_CON_LINGERING_CLOSE 0x0020
-/* Padding for public flags, @see EVHTTP_CON_* in http-internal.h */
-#define EVHTTP_CON_PUBLIC_FLAGS_END 0x100000
-/**
- * Set connection flags.
- *
- * @see EVHTTP_CON_*
- * @return 0 on success, otherwise non zero (for example if flag doesn't
- * supported).
+ * Return the bufferevent that an evhttp_connection is using.
*/
-EVENT2_EXPORT_SYMBOL
-int evhttp_connection_set_flags(struct evhttp_connection *evcon,
- int flags);
+struct bufferevent *evhttp_connection_get_bufferevent(
+ struct evhttp_connection *evcon);
/** Takes ownership of the request object
*
* Can be used in a request callback to keep onto the request until
* evhttp_request_free() is explicitly called by the user.
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_request_own(struct evhttp_request *req);
/** Returns 1 if the request is owned by the user */
-EVENT2_EXPORT_SYMBOL
int evhttp_request_is_owned(struct evhttp_request *req);
/**
@@ -689,89 +450,46 @@ int evhttp_request_is_owned(struct evhttp_request *req);
* The user needs to either free the request explicitly or call
* evhttp_send_reply_end().
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_connection *evhttp_request_get_connection(struct evhttp_request *req);
/**
* Returns the underlying event_base for this connection
*/
-EVENT2_EXPORT_SYMBOL
struct event_base *evhttp_connection_get_base(struct evhttp_connection *req);
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_set_max_headers_size(struct evhttp_connection *evcon,
ev_ssize_t new_max_headers_size);
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_set_max_body_size(struct evhttp_connection* evcon,
ev_ssize_t new_max_body_size);
/** Frees an http connection */
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_free(struct evhttp_connection *evcon);
-/** Disowns a given connection object
- *
- * Can be used to tell libevent to free the connection object after
- * the last request has completed or failed.
- */
-EVENT2_EXPORT_SYMBOL
-void evhttp_connection_free_on_completion(struct evhttp_connection *evcon);
-
/** sets the ip address from which http connections are made */
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_set_local_address(struct evhttp_connection *evcon,
const char *address);
/** sets the local port from which http connections are made */
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_set_local_port(struct evhttp_connection *evcon,
ev_uint16_t port);
-/** Sets the timeout in seconds for events related to this connection */
-EVENT2_EXPORT_SYMBOL
+/** Sets the timeout for events related to this connection */
void evhttp_connection_set_timeout(struct evhttp_connection *evcon,
int timeout_in_secs);
-/** Sets the timeout for events related to this connection. Takes a struct
- * timeval. */
-EVENT2_EXPORT_SYMBOL
-void evhttp_connection_set_timeout_tv(struct evhttp_connection *evcon,
- const struct timeval *tv);
-
-/** Sets the delay before retrying requests on this connection. This is only
- * used if evhttp_connection_set_retries is used to make the number of retries
- * at least one. Each retry after the first is twice as long as the one before
- * it. */
-EVENT2_EXPORT_SYMBOL
-void evhttp_connection_set_initial_retry_tv(struct evhttp_connection *evcon,
- const struct timeval *tv);
-
/** Sets the retry limit for this connection - -1 repeats indefinitely */
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_set_retries(struct evhttp_connection *evcon,
int retry_max);
/** Set a callback for connection close. */
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_set_closecb(struct evhttp_connection *evcon,
void (*)(struct evhttp_connection *, void *), void *);
/** Get the remote address and port associated with this connection. */
-EVENT2_EXPORT_SYMBOL
void evhttp_connection_get_peer(struct evhttp_connection *evcon,
char **address, ev_uint16_t *port);
-/** Get the remote address associated with this connection.
- * extracted from getpeername() OR from nameserver.
- *
- * @return NULL if getpeername() return non success,
- * or connection is not connected,
- * otherwise it return pointer to struct sockaddr_storage */
-EVENT2_EXPORT_SYMBOL
-const struct sockaddr*
-evhttp_connection_get_addr(struct evhttp_connection *evcon);
-
/**
Make an HTTP request over the specified connection.
@@ -785,7 +503,6 @@ evhttp_connection_get_addr(struct evhttp_connection *evcon);
@return 0 on success, -1 on failure
@see evhttp_cancel_request()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_make_request(struct evhttp_connection *evcon,
struct evhttp_request *req,
enum evhttp_cmd_type type, const char *uri);
@@ -803,7 +520,6 @@ int evhttp_make_request(struct evhttp_connection *evcon,
@param req the evhttp_request to cancel; req becomes invalid after this call.
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_cancel_request(struct evhttp_request *req);
/**
@@ -812,37 +528,26 @@ void evhttp_cancel_request(struct evhttp_request *req);
struct evhttp_uri;
/** Returns the request URI */
-EVENT2_EXPORT_SYMBOL
const char *evhttp_request_get_uri(const struct evhttp_request *req);
/** Returns the request URI (parsed) */
-EVENT2_EXPORT_SYMBOL
const struct evhttp_uri *evhttp_request_get_evhttp_uri(const struct evhttp_request *req);
/** Returns the request command */
-EVENT2_EXPORT_SYMBOL
enum evhttp_cmd_type evhttp_request_get_command(const struct evhttp_request *req);
-EVENT2_EXPORT_SYMBOL
int evhttp_request_get_response_code(const struct evhttp_request *req);
-EVENT2_EXPORT_SYMBOL
-const char * evhttp_request_get_response_code_line(const struct evhttp_request *req);
/** Returns the input headers */
-EVENT2_EXPORT_SYMBOL
struct evkeyvalq *evhttp_request_get_input_headers(struct evhttp_request *req);
/** Returns the output headers */
-EVENT2_EXPORT_SYMBOL
struct evkeyvalq *evhttp_request_get_output_headers(struct evhttp_request *req);
/** Returns the input buffer */
-EVENT2_EXPORT_SYMBOL
struct evbuffer *evhttp_request_get_input_buffer(struct evhttp_request *req);
/** Returns the output buffer */
-EVENT2_EXPORT_SYMBOL
struct evbuffer *evhttp_request_get_output_buffer(struct evhttp_request *req);
/** Returns the host associated with the request. If a client sends an absolute
URI, the host part of that is preferred. Otherwise, the input headers are
searched for a Host: header. NULL is returned if no absolute URI or Host:
header is provided. */
-EVENT2_EXPORT_SYMBOL
const char *evhttp_request_get_host(struct evhttp_request *req);
/* Interfaces for dealing with HTTP headers */
@@ -853,10 +558,9 @@ const char *evhttp_request_get_host(struct evhttp_request *req);
@param headers the evkeyvalq object in which to find the header
@param key the name of the header to find
@returns a pointer to the value for the header or NULL if the header
- could not be found.
+ count not be found.
@see evhttp_add_header(), evhttp_remove_header()
*/
-EVENT2_EXPORT_SYMBOL
const char *evhttp_find_header(const struct evkeyvalq *headers,
const char *key);
@@ -868,7 +572,6 @@ const char *evhttp_find_header(const struct evkeyvalq *headers,
@returns 0 if the header was removed, -1 otherwise.
@see evhttp_find_header(), evhttp_add_header()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_remove_header(struct evkeyvalq *headers, const char *key);
/**
@@ -880,7 +583,6 @@ int evhttp_remove_header(struct evkeyvalq *headers, const char *key);
@returns 0 on success, -1 otherwise.
@see evhttp_find_header(), evhttp_clear_headers()
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_add_header(struct evkeyvalq *headers, const char *key, const char *value);
/**
@@ -888,7 +590,6 @@ int evhttp_add_header(struct evkeyvalq *headers, const char *key, const char *va
@param headers the evkeyvalq object from which to remove all headers
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_clear_headers(struct evkeyvalq *headers);
/* Miscellaneous utility functions */
@@ -905,7 +606,6 @@ void evhttp_clear_headers(struct evkeyvalq *headers);
@param str an unencoded string
@return a newly allocated URI-encoded string or NULL on failure
*/
-EVENT2_EXPORT_SYMBOL
char *evhttp_encode_uri(const char *str);
/**
@@ -922,7 +622,6 @@ char *evhttp_encode_uri(const char *str);
as +, not %20.
@return a newly allocate URI-encoded string, or NULL on failure.
*/
-EVENT2_EXPORT_SYMBOL
char *evhttp_uriencode(const char *str, ev_ssize_t size, int space_to_plus);
/**
@@ -939,7 +638,6 @@ char *evhttp_uriencode(const char *str, ev_ssize_t size, int space_to_plus);
@param uri an encoded URI
@return a newly allocated unencoded URI or NULL on failure
*/
-EVENT2_EXPORT_SYMBOL
char *evhttp_decode_uri(const char *uri);
/**
@@ -952,12 +650,11 @@ char *evhttp_decode_uri(const char *uri);
The returned string must be freed by the caller.
@param uri a URI-encode encoded URI
- @param decode_plus determines whether we convert '+' to space.
+ @param decode_plus determines whether we convert '+' to sapce.
@param size_out if size_out is not NULL, *size_out is set to the size of the
returned string
@return a newly allocated unencoded URI or NULL on failure
*/
-EVENT2_EXPORT_SYMBOL
char *evhttp_uridecode(const char *uri, int decode_plus,
size_t *size_out);
@@ -980,7 +677,6 @@ char *evhttp_uridecode(const char *uri, int decode_plus,
@param headers the head of the evkeyval queue
@return 0 on success, -1 on failure
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_parse_query(const char *uri, struct evkeyvalq *headers);
/**
@@ -1000,7 +696,6 @@ int evhttp_parse_query(const char *uri, struct evkeyvalq *headers);
@param headers the head of the evkeyval queue
@return 0 on success, -1 on failure
*/
-EVENT2_EXPORT_SYMBOL
int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers);
/**
@@ -1014,31 +709,26 @@ int evhttp_parse_query_str(const char *uri, struct evkeyvalq *headers);
* @param html an unescaped HTML string
* @return an escaped HTML string or NULL on error
*/
-EVENT2_EXPORT_SYMBOL
char *evhttp_htmlescape(const char *html);
/**
* Return a new empty evhttp_uri with no fields set.
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_uri *evhttp_uri_new(void);
/**
* Changes the flags set on a given URI. See EVHTTP_URI_* for
* a list of flags.
**/
-EVENT2_EXPORT_SYMBOL
void evhttp_uri_set_flags(struct evhttp_uri *uri, unsigned flags);
/** Return the scheme of an evhttp_uri, or NULL if there is no scheme has
* been set and the evhttp_uri contains a Relative-Ref. */
-EVENT2_EXPORT_SYMBOL
const char *evhttp_uri_get_scheme(const struct evhttp_uri *uri);
/**
* Return the userinfo part of an evhttp_uri, or NULL if it has no userinfo
* set.
*/
-EVENT2_EXPORT_SYMBOL
const char *evhttp_uri_get_userinfo(const struct evhttp_uri *uri);
/**
* Return the host part of an evhttp_uri, or NULL if it has no host set.
@@ -1052,52 +742,40 @@ const char *evhttp_uri_get_userinfo(const struct evhttp_uri *uri);
* "mailto:user@example.com" has a host of NULL, but "file:///etc/motd"
* has a host of "".
*/
-EVENT2_EXPORT_SYMBOL
const char *evhttp_uri_get_host(const struct evhttp_uri *uri);
/** Return the port part of an evhttp_uri, or -1 if there is no port set. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_get_port(const struct evhttp_uri *uri);
/** Return the path part of an evhttp_uri, or NULL if it has no path set */
-EVENT2_EXPORT_SYMBOL
const char *evhttp_uri_get_path(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
const char *evhttp_uri_get_query(const struct evhttp_uri *uri);
/** Return the fragment part of an evhttp_uri (excluding the leading "#"),
* or NULL if it has no fragment set */
-EVENT2_EXPORT_SYMBOL
const char *evhttp_uri_get_fragment(const struct evhttp_uri *uri);
/** Set the scheme of an evhttp_uri, or clear the scheme if scheme==NULL.
* Returns 0 on success, -1 if scheme is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_scheme(struct evhttp_uri *uri, const char *scheme);
/** Set the userinfo of an evhttp_uri, or clear the userinfo if userinfo==NULL.
* Returns 0 on success, -1 if userinfo is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_userinfo(struct evhttp_uri *uri, const char *userinfo);
/** Set the host of an evhttp_uri, or clear the host if host==NULL.
* Returns 0 on success, -1 if host is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_host(struct evhttp_uri *uri, const char *host);
/** Set the port of an evhttp_uri, or clear the port if port==-1.
* Returns 0 on success, -1 if port is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_port(struct evhttp_uri *uri, int port);
/** Set the path of an evhttp_uri, or clear the path if path==NULL.
* Returns 0 on success, -1 if path is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_path(struct evhttp_uri *uri, const char *path);
/** Set the query of an evhttp_uri, or clear the query if query==NULL.
* The query should not include a leading "?".
* Returns 0 on success, -1 if query is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_query(struct evhttp_uri *uri, const char *query);
/** Set the fragment of an evhttp_uri, or clear the fragment if fragment==NULL.
* The fragment should not include a leading "#".
* Returns 0 on success, -1 if fragment is not well-formed. */
-EVENT2_EXPORT_SYMBOL
int evhttp_uri_set_fragment(struct evhttp_uri *uri, const char *fragment);
/**
@@ -1134,7 +812,6 @@ int evhttp_uri_set_fragment(struct evhttp_uri *uri, const char *fragment);
* @return uri container to hold parsed data, or NULL if there is error
* @see evhttp_uri_free()
*/
-EVENT2_EXPORT_SYMBOL
struct evhttp_uri *evhttp_uri_parse_with_flags(const char *source_uri,
unsigned flags);
@@ -1153,7 +830,6 @@ struct evhttp_uri *evhttp_uri_parse_with_flags(const char *source_uri,
#define EVHTTP_URI_NONCONFORMANT 0x01
/** Alias for evhttp_uri_parse_with_flags(source_uri, 0) */
-EVENT2_EXPORT_SYMBOL
struct evhttp_uri *evhttp_uri_parse(const char *source_uri);
/**
@@ -1163,7 +839,6 @@ struct evhttp_uri *evhttp_uri_parse(const char *source_uri);
* @param uri container with parsed data
* @see evhttp_uri_parse()
*/
-EVENT2_EXPORT_SYMBOL
void evhttp_uri_free(struct evhttp_uri *uri);
/**
@@ -1179,11 +854,10 @@ void evhttp_uri_free(struct evhttp_uri *uri);
* @return an joined uri as string or NULL on error
* @see evhttp_uri_parse()
*/
-EVENT2_EXPORT_SYMBOL
char *evhttp_uri_join(struct evhttp_uri *uri, char *buf, size_t limit);
#ifdef __cplusplus
}
#endif
-#endif /* EVENT2_HTTP_H_INCLUDED_ */
+#endif /* _EVENT2_HTTP_H_ */