HASH_TABLE_DEFINE_TYPE(http_client_peer, const struct http_client_peer_addr *,
struct http_client_peer *);
-enum http_request_state {
- HTTP_REQUEST_STATE_NEW = 0,
- HTTP_REQUEST_STATE_QUEUED,
- HTTP_REQUEST_STATE_PAYLOAD_OUT,
- HTTP_REQUEST_STATE_WAITING,
- HTTP_REQUEST_STATE_GOT_RESPONSE,
- HTTP_REQUEST_STATE_PAYLOAD_IN,
- HTTP_REQUEST_STATE_FINISHED,
- HTTP_REQUEST_STATE_ABORTED
-};
-
struct http_client_request {
pool_t pool;
unsigned int refcount;
#include "http-client-private.h"
+const char *http_request_state_names[] = {
+ "new",
+ "queued",
+ "payload_out",
+ "waiting",
+ "got_response",
+ "payload_in",
+ "finished",
+ "aborted"
+};
+
/*
* Logging
*/
req->payload_sync = TRUE;
}
+enum http_request_state
+http_client_request_get_state(struct http_client_request *req)
+{
+ return req->state;
+}
+
static void http_client_request_do_submit(struct http_client_request *req)
{
struct http_client_host *host;
HTTP_CLIENT_REQUEST_ERROR_TIMED_OUT,
};
+enum http_request_state {
+ HTTP_REQUEST_STATE_NEW = 0,
+ HTTP_REQUEST_STATE_QUEUED,
+ HTTP_REQUEST_STATE_PAYLOAD_OUT,
+ HTTP_REQUEST_STATE_WAITING,
+ HTTP_REQUEST_STATE_GOT_RESPONSE,
+ HTTP_REQUEST_STATE_PAYLOAD_IN,
+ HTTP_REQUEST_STATE_FINISHED,
+ HTTP_REQUEST_STATE_ABORTED
+};
+extern const char *http_request_state_names[];
+
struct http_client_settings {
const char *dns_client_socket_path;
void http_client_request_set_payload(struct http_client_request *req,
struct istream *input, bool sync);
+enum http_request_state
+http_client_request_get_state(struct http_client_request *req);
void http_client_request_submit(struct http_client_request *req);
void http_client_request_abort(struct http_client_request **req);