tinywebd

view src/http.h @ 3:852a745503cf

http header parsing, not tested
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 16 Apr 2015 15:20:16 +0300
parents 7bb4c2a0a360
children def49a046566
line source
1 #ifndef HTTP_H_
2 #define HTTP_H_
4 enum http_method {
5 HTTP_UNKNOWN,
6 HTTP_OPTIONS,
7 HTTP_GET,
8 HTTP_HEAD,
9 HTTP_POST,
10 HTTP_PUT,
11 HTTP_DELETE,
12 HTTP_TRACE,
13 HTTP_CONNECT,
15 NUM_HTTP_METHODS
16 };
18 struct http_req_header {
19 enum http_method method;
20 char *uri;
21 int ver_major, ver_minor; /* http version */
22 char **hdrfields;
23 int num_hdrfields;
24 int body_offset;
25 };
27 #define HTTP_HDR_OK 0
28 #define HTTP_HDR_INVALID -1
29 #define HTTP_HDR_NOMEM -2
30 #define HTTP_HDR_PARTIAL -3
32 int http_parse_header(struct http_req_header *hdr, const char *buf, int bufsz);
33 void http_print_header(struct http_req_header *hdr);
34 void http_destroy_header(struct http_req_header *hdr);
36 const char *http_strmsg(int code);
38 #endif /* HTTP_H_ */