1214501Srpaulo/*
2214501Srpaulo * http_server - HTTP server
3214501Srpaulo * Copyright (c) 2009, Jouni Malinen <j@w1.fi>
4214501Srpaulo *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7214501Srpaulo */
8214501Srpaulo
9214501Srpaulo#ifndef HTTP_SERVER_H
10214501Srpaulo#define HTTP_SERVER_H
11214501Srpaulo
12214501Srpaulostruct http_server;
13214501Srpaulostruct http_request;
14214501Srpaulo
15214501Srpaulovoid http_request_deinit(struct http_request *req);
16214501Srpaulovoid http_request_send(struct http_request *req, struct wpabuf *resp);
17214501Srpaulovoid http_request_send_and_deinit(struct http_request *req,
18214501Srpaulo				  struct wpabuf *resp);
19214501Srpauloenum httpread_hdr_type http_request_get_type(struct http_request *req);
20214501Srpaulochar * http_request_get_uri(struct http_request *req);
21214501Srpaulochar * http_request_get_hdr(struct http_request *req);
22214501Srpaulochar * http_request_get_data(struct http_request *req);
23214501Srpaulochar * http_request_get_hdr_line(struct http_request *req, const char *tag);
24214501Srpaulostruct sockaddr_in * http_request_get_cli_addr(struct http_request *req);
25214501Srpaulo
26214501Srpaulostruct http_server * http_server_init(struct in_addr *addr, int port,
27214501Srpaulo				      void (*cb)(void *ctx,
28214501Srpaulo						 struct http_request *req),
29214501Srpaulo				      void *cb_ctx);
30214501Srpaulovoid http_server_deinit(struct http_server *srv);
31214501Srpauloint http_server_get_port(struct http_server *srv);
32214501Srpaulo
33214501Srpaulo#endif /* HTTP_SERVER_H */
34