http-client.h revision 35e962a9186b4e9b2001628c1d7b55c24b33ce84
1d048c5050f03c24251e5af8087e640de21b2d62Timo Sirainenextern const char *http_request_state_names[];
56d1345c43bbd28c36b7faa85e4163bd9e874290Timo Sirainen const char *ssl_ca_dir, *ssl_ca_file, *ssl_ca;
35e962a9186b4e9b2001628c1d7b55c24b33ce84Timo Sirainen /* user cert */
35e962a9186b4e9b2001628c1d7b55c24b33ce84Timo Sirainen const char *ssl_cert, *ssl_key, *ssl_key_password;
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch /* maximum number of parallel connections per peer (default = 1) */
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch /* maximum number of pipelined requests per connection (default = 1) */
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch /* maximum number of redirects for a request
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch (default = 0; redirects refused)
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch /* maximum number of attempts for a request */
7384b4e78eaab44693c985192276e31322155e32Stephan Boschhttp_client_request_callback_t(const struct http_response *response,
7384b4e78eaab44693c985192276e31322155e32Stephan Boschstruct http_client *http_client_init(const struct http_client_settings *set);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_deinit(struct http_client **_client);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschhttp_client_request(struct http_client *client,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch const char *method, const char *host, const char *target,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch http_client_request_callback_t *callback, void *context);
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch#define http_client_request(client, method, host, target, callback, context) \
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch http_client_request(client, method, host, target + \
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch const struct http_response *response, typeof(context))), \
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch (http_client_request_callback_t *)callback, context)
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_set_port(struct http_client_request *req,
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch unsigned int port);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_set_ssl(struct http_client_request *req,
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_set_urgent(struct http_client_request *req);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_add_header(struct http_client_request *req,
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_set_payload(struct http_client_request *req,
1d048c5050f03c24251e5af8087e640de21b2d62Timo Sirainenhttp_client_request_get_state(struct http_client_request *req);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_submit(struct http_client_request *req);
6c768e0e1ca2da178e79f7435c32ced01f6bcb24Timo Sirainenbool http_client_request_try_retry(struct http_client_request *req);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_request_abort(struct http_client_request **req);
4124bebe6daab2cd05acb0416096fc47cb9abd92Timo Sirainen/* Call the specified callback when HTTP request is destroyed. */
4124bebe6daab2cd05acb0416096fc47cb9abd92Timo Sirainenvoid http_client_request_set_destroy_callback(struct http_client_request *req,
4124bebe6daab2cd05acb0416096fc47cb9abd92Timo Sirainen void (*callback)(void *),
eb325a5a90c1d2655e74972bde0de6a699d2c864Stephan Bosch/* submits request and blocks until provided payload is sent. Multiple calls
069b28a2ef54072a221fe4ac67aaeb4e83fee6c1Timo Sirainen are allowed; payload transmission is ended with
069b28a2ef54072a221fe4ac67aaeb4e83fee6c1Timo Sirainen http_client_request_finish_payload(). */
eb325a5a90c1d2655e74972bde0de6a699d2c864Stephan Boschint http_client_request_send_payload(struct http_client_request **req,
069b28a2ef54072a221fe4ac67aaeb4e83fee6c1Timo Sirainenint http_client_request_finish_payload(struct http_client_request **req);
7384b4e78eaab44693c985192276e31322155e32Stephan Boschvoid http_client_switch_ioloop(struct http_client *client);
7384b4e78eaab44693c985192276e31322155e32Stephan Bosch/* blocks until all currently submitted requests are handled */