diff options
Diffstat (limited to 'include/event2/http.h')
-rw-r--r-- | include/event2/http.h | 356 |
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_ */ |