1*3ff40c12SJohn Marino /* 2*3ff40c12SJohn Marino * http_client - HTTP client 3*3ff40c12SJohn Marino * Copyright (c) 2009, Jouni Malinen <j@w1.fi> 4*3ff40c12SJohn Marino * 5*3ff40c12SJohn Marino * This software may be distributed under the terms of the BSD license. 6*3ff40c12SJohn Marino * See README for more details. 7*3ff40c12SJohn Marino */ 8*3ff40c12SJohn Marino 9*3ff40c12SJohn Marino #ifndef HTTP_CLIENT_H 10*3ff40c12SJohn Marino #define HTTP_CLIENT_H 11*3ff40c12SJohn Marino 12*3ff40c12SJohn Marino struct http_client; 13*3ff40c12SJohn Marino 14*3ff40c12SJohn Marino enum http_client_event { 15*3ff40c12SJohn Marino HTTP_CLIENT_FAILED, 16*3ff40c12SJohn Marino HTTP_CLIENT_TIMEOUT, 17*3ff40c12SJohn Marino HTTP_CLIENT_OK, 18*3ff40c12SJohn Marino HTTP_CLIENT_INVALID_REPLY, 19*3ff40c12SJohn Marino }; 20*3ff40c12SJohn Marino 21*3ff40c12SJohn Marino char * http_client_url_parse(const char *url, struct sockaddr_in *dst, 22*3ff40c12SJohn Marino char **path); 23*3ff40c12SJohn Marino struct http_client * http_client_addr(struct sockaddr_in *dst, 24*3ff40c12SJohn Marino struct wpabuf *req, size_t max_response, 25*3ff40c12SJohn Marino void (*cb)(void *ctx, 26*3ff40c12SJohn Marino struct http_client *c, 27*3ff40c12SJohn Marino enum http_client_event event), 28*3ff40c12SJohn Marino void *cb_ctx); 29*3ff40c12SJohn Marino struct http_client * http_client_url(const char *url, 30*3ff40c12SJohn Marino struct wpabuf *req, size_t max_response, 31*3ff40c12SJohn Marino void (*cb)(void *ctx, 32*3ff40c12SJohn Marino struct http_client *c, 33*3ff40c12SJohn Marino enum http_client_event event), 34*3ff40c12SJohn Marino void *cb_ctx); 35*3ff40c12SJohn Marino void http_client_free(struct http_client *c); 36*3ff40c12SJohn Marino struct wpabuf * http_client_get_body(struct http_client *c); 37*3ff40c12SJohn Marino char * http_client_get_hdr_line(struct http_client *c, const char *tag); 38*3ff40c12SJohn Marino char * http_link_update(char *url, const char *base); 39*3ff40c12SJohn Marino 40*3ff40c12SJohn Marino #endif /* HTTP_CLIENT_H */ 41