blob: e6a11af5a3d07107a9d3e5ee91bdd22be2697f75 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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_t)(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_t cb, void *arg);
void http_cancel(struct http_req *req);
#endif
|