53f8ec8ec8c863b0233c80d5a887afcec3ed0996
[libeap.git] / src / wps / http_client.h
1 /**
2  * http_client - HTTP client
3  * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation.
8  *
9  * Alternatively, this software may be distributed under the terms of BSD
10  * license.
11  *
12  * See README and COPYING for more details.
13  */
14
15 #ifndef HTTP_CLIENT_H
16 #define HTTP_CLIENT_H
17
18 struct http_client;
19
20 enum http_client_event {
21         HTTP_CLIENT_FAILED,
22         HTTP_CLIENT_TIMEOUT,
23         HTTP_CLIENT_OK,
24         HTTP_CLIENT_INVALID_REPLY,
25 };
26
27 struct http_client * http_client_addr(struct sockaddr_in *dst,
28                                       struct wpabuf *req, size_t max_response,
29                                       void (*cb)(void *ctx,
30                                                  struct http_client *c,
31                                                  enum http_client_event event),
32                                       void *cb_ctx);
33 struct http_client * http_client_url(const char *url,
34                                      struct wpabuf *req, size_t max_response,
35                                      void (*cb)(void *ctx,
36                                                 struct http_client *c,
37                                                 enum http_client_event event),
38                                      void *cb_ctx);
39 void http_client_free(struct http_client *c);
40 struct wpabuf * http_client_get_body(struct http_client *c);
41 char * http_link_update(char *url, const char *base);
42
43 #endif /* HTTP_CLIENT_H */