From 1b7bb76fb78ec8f03999aaa9824f811f1fcf2c27 Mon Sep 17 00:00:00 2001 From: Richard Nyberg Date: Sun, 29 Oct 2006 14:54:21 +0000 Subject: Add a simple http client. Since it uses libevent it's a better fit for btpd than curl. --- misc/http_client.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 misc/http_client.h (limited to 'misc/http_client.h') diff --git a/misc/http_client.h b/misc/http_client.h new file mode 100644 index 0000000..2d0c24a --- /dev/null +++ b/misc/http_client.h @@ -0,0 +1,38 @@ +#ifndef BTPD_HTTP_CLIENT_H +#define BTPD_HTTP_CLIENT_H + +struct http_response { + enum { + HTTP_T_ERR, HTTP_T_CODE, HTTP_T_HEADER, HTTP_T_DATA, HTTP_T_DONE + } type; + union { + int error; + int code; + struct { + char *n; + char *v; + } header; + struct { + size_t l; + char *p; + } data; + } v; +}; + +struct http_url { + char *host; + char *uri; + uint16_t port; +}; + +struct http_req; + +typedef void (*http_cb)(struct http_req *, struct http_response *, void *); + +struct http_url *http_url_parse(const char *url); +void http_url_free(struct http_url *url); +int http_get(struct http_req **out, const char *url, const char *hdrs, + http_cb cb, void *arg); +void http_cancel(struct http_req *req); + +#endif -- cgit 1.4.1