28 #ifndef HOMEPORT_HPD_HTTPD_H
29 #define HOMEPORT_HPD_HTTPD_H
123 #define HPD_HTTPD_SETTINGS_DEFAULT { \
124 .port = HPD_TCPD_P_HTTP, \
127 .on_req_begin = NULL, \
128 .on_req_url = NULL, \
129 .on_req_url_cmpl = NULL, \
130 .on_req_hdr_field = NULL, \
131 .on_req_hdr_value = NULL, \
132 .on_req_hdr_cmpl = NULL, \
133 .on_req_body = NULL, \
134 .on_req_destroy = NULL, \
135 .on_req_cmpl = NULL }
164 const char *expires,
const char *max_age,
const char *domain,
166 int secure,
int http_only,
const char *extension);
168 #endif // HOMEPORT_HTTPD_H
enum hpd_status hpd_status_t
enum hpd_tcpd_port hpd_tcpd_port_t
hpd_error_t hpd_httpd_response_create(hpd_httpd_response_t **response, hpd_httpd_request_t *req, hpd_status_t status)
Create the reponse and constructs the status line.
hpd_httpd_return_t(* hpd_httpd_nodata_f)(hpd_httpd_t *httpd, hpd_httpd_request_t *req, void *httpd_ctx, void **req_data)
hpd_error_t hpd_httpd_request_get_argument(hpd_httpd_request_t *req, const char *key, const char **val)
Get a specific argument of a request.
hpd_httpd_data_f on_req_hdr_field
hpd_error_t hpd_httpd_destroy(hpd_httpd_t *httpd)
Destroy a httpd instance.
hpd_error_t hpd_httpd_response_sendf(hpd_httpd_response_t *res, const char *fmt,...)
Send response to client.
hpd_error_t hpd_httpd_request_get_url(hpd_httpd_request_t *req, const char **url)
Get the URL of this request.
hpd_error_t hpd_httpd_response_vsendf(hpd_httpd_response_t *res, const char *fmt, va_list arg)
Send response to client.
struct hp_settings settings
hpd_error_t hpd_httpd_request_get_arguments(hpd_httpd_request_t *req, hpd_map_t **arguments)
Get a linked map of all URL arguements for a request.
hpd_error_t hpd_httpd_response_add_cookie(hpd_httpd_response_t *res, const char *field, const char *value, const char *expires, const char *max_age, const char *domain, const char *path, int secure, int http_only, const char *extension)
Add cookie header to response.
hpd_error_t hpd_httpd_request_keep_open(hpd_httpd_request_t *req)
Keep the connection for a request open.
hpd_httpd_nodata_f on_req_url_cmpl
hpd_error_t hpd_httpd_request_get_cookies(hpd_httpd_request_t *req, hpd_map_t **cookies)
Get a all cookies for a request.
hpd_error_t hpd_httpd_request_get_headers(hpd_httpd_request_t *req, hpd_map_t **headers)
Get a linked map of all headers for a request.
enum hpd_error hpd_error_t
hpd_httpd_nodata_f on_req_begin
hpd_error_t hpd_httpd_request_get_method(hpd_httpd_request_t *req, hpd_httpd_method_t *method)
Get the method of the http request.
hpd_httpd_nodata_f on_req_hdr_cmpl
Settings struct for webserver.
hpd_error_t hpd_httpd_response_destroy(hpd_httpd_response_t *res)
Destroy a hpd_httpd_response.
enum hpd_httpd_return hpd_httpd_return_t
static struct ev_loop * loop
hpd_error_t hpd_httpd_create(hpd_httpd_t **httpd, hpd_httpd_settings_t *settings, const hpd_module_t *context, hpd_ev_loop_t *loop)
Create a new httpd instance.
hpd_error_t hpd_httpd_stop(hpd_httpd_t *httpd)
Stop a httpd instance.
hpd_error_t hpd_httpd_start(hpd_httpd_t *httpd)
Start a httpd instance.
hpd_httpd_nodata_f on_req_destroy
hpd_httpd_nodata_f on_req_cmpl
hpd_error_t hpd_httpd_response_add_header(hpd_httpd_response_t *res, const char *field, const char *value)
Add header to a response.
hpd_error_t hpd_httpd_request_get_ip(hpd_httpd_request_t *req, const char **ip)
Get the IP of a request.
hpd_httpd_return_t(* hpd_httpd_data_f)(hpd_httpd_t *httpd, hpd_httpd_request_t *req, void *httpd_ctx, void **req_data, const char *buf, size_t len)
hpd_httpd_data_f on_req_body
enum hpd_httpd_method hpd_httpd_method_t
struct ev_loop hpd_ev_loop_t
hpd_error_t hpd_httpd_request_get_cookie(hpd_httpd_request_t *req, const char *key, const char **val)
Get a specific cookie for a request.
hpd_httpd_data_f on_req_url
hpd_httpd_data_f on_req_hdr_value
hpd_error_t hpd_httpd_request_get_header(hpd_httpd_request_t *req, const char *key, const char **value)
Get a specific header of a request.