rev |
line source |
nuclear@1
|
1 #ifndef HTTP_H_
|
nuclear@1
|
2 #define HTTP_H_
|
nuclear@1
|
3
|
nuclear@1
|
4 enum http_method {
|
nuclear@1
|
5 HTTP_UNKNOWN,
|
nuclear@1
|
6 HTTP_OPTIONS,
|
nuclear@1
|
7 HTTP_GET,
|
nuclear@1
|
8 HTTP_HEAD,
|
nuclear@1
|
9 HTTP_POST,
|
nuclear@1
|
10 HTTP_PUT,
|
nuclear@1
|
11 HTTP_DELETE,
|
nuclear@1
|
12 HTTP_TRACE,
|
nuclear@1
|
13 HTTP_CONNECT,
|
nuclear@1
|
14
|
nuclear@1
|
15 NUM_HTTP_METHODS
|
nuclear@1
|
16 };
|
nuclear@1
|
17
|
nuclear@1
|
18 const char *http_method_str[] = {
|
nuclear@1
|
19 "<unknown>",
|
nuclear@1
|
20 "OPTIONS",
|
nuclear@1
|
21 "GET",
|
nuclear@1
|
22 "HEAD",
|
nuclear@1
|
23 "POST",
|
nuclear@1
|
24 "PUT",
|
nuclear@1
|
25 "DELETE",
|
nuclear@1
|
26 "TRACE",
|
nuclear@1
|
27 "CONNECT",
|
nuclear@1
|
28 0
|
nuclear@1
|
29 };
|
nuclear@1
|
30
|
nuclear@1
|
31
|
nuclear@1
|
32 struct http_req_header {
|
nuclear@1
|
33 enum http_method method;
|
nuclear@1
|
34 char *uri;
|
nuclear@1
|
35 int ver_major, ver_minor; /* http version */
|
nuclear@2
|
36 char **hdrfields;
|
nuclear@2
|
37 int num_hdrfields;
|
nuclear@1
|
38 };
|
nuclear@1
|
39
|
nuclear@1
|
40
|
nuclear@2
|
41 int http_parse_header(struct http_req_header *hdr, const char *buf, int bufsz);
|
nuclear@2
|
42
|
nuclear@2
|
43 const char *http_strmsg(int code);
|
nuclear@2
|
44
|
nuclear@2
|
45
|
nuclear@1
|
46 /* HTTP 1xx message strings */
|
nuclear@1
|
47 const char *http_msg1xx[] = {
|
nuclear@1
|
48 "Continue", /* 100 */
|
nuclear@1
|
49 "Switching Protocols" /* 101 */
|
nuclear@1
|
50 };
|
nuclear@1
|
51
|
nuclear@1
|
52 /* HTTP 2xx message strings */
|
nuclear@1
|
53 const char *http_msg2xx[] = {
|
nuclear@1
|
54 "OK", /* 200 */
|
nuclear@1
|
55 "Created", /* 201 */
|
nuclear@1
|
56 "Accepted", /* 202 */
|
nuclear@1
|
57 "Non-Authoritative Information", /* 203 */
|
nuclear@1
|
58 "No Content", /* 204 */
|
nuclear@1
|
59 "Reset Content", /* 205 */
|
nuclear@1
|
60 "Partial Content" /* 206 */
|
nuclear@1
|
61 };
|
nuclear@1
|
62
|
nuclear@1
|
63 /* HTTP 3xx message strings */
|
nuclear@1
|
64 const char *http_msg3xx[] = {
|
nuclear@1
|
65 "Multiple Choices", /* 300 */
|
nuclear@1
|
66 "Moved Permanently", /* 301 */
|
nuclear@1
|
67 "Found", /* 302 */
|
nuclear@1
|
68 "See Other", /* 303 */
|
nuclear@1
|
69 "Not Modified", /* 304 */
|
nuclear@1
|
70 "Use Proxy", /* 305 */
|
nuclear@1
|
71 "<unknown>", /* 306 is undefined? */
|
nuclear@1
|
72 "Temporary Redirect" /* 307 */
|
nuclear@1
|
73 };
|
nuclear@1
|
74
|
nuclear@1
|
75 /* HTTP 4xx error strings */
|
nuclear@1
|
76 const char *http_msg4xx[] = {
|
nuclear@1
|
77 "Bad Request", /* 400 */
|
nuclear@1
|
78 "Unauthorized", /* 401 */
|
nuclear@1
|
79 "What the Fuck?", /* 402 */
|
nuclear@1
|
80 "Forbidden", /* 403 */
|
nuclear@1
|
81 "Not Found", /* 404 */
|
nuclear@1
|
82 "Method Not Allowed", /* 405 */
|
nuclear@1
|
83 "Not Acceptable", /* 406 */
|
nuclear@1
|
84 "Proxy Authentication Required", /* 407 */
|
nuclear@1
|
85 "Request Time-out", /* 408 */
|
nuclear@1
|
86 "Conflict", /* 409 */
|
nuclear@1
|
87 "Gone", /* 410 */
|
nuclear@1
|
88 "Length Required", /* 411 */
|
nuclear@1
|
89 "Precondition Failed", /* 412 */
|
nuclear@1
|
90 "Request Entity Too Large", /* 413 */
|
nuclear@1
|
91 "Request-URI Too Large", /* 414 */
|
nuclear@1
|
92 "Unsupported Media Type", /* 415 */
|
nuclear@1
|
93 "Request range not satisfiable", /* 416 */
|
nuclear@1
|
94 "Expectation Failed" /* 417 */
|
nuclear@1
|
95 };
|
nuclear@1
|
96
|
nuclear@1
|
97 /* HTTP 5xx error strings */
|
nuclear@1
|
98 const char *http_msg5xx[] = {
|
nuclear@1
|
99 "Internal Server Error", /* 500 */
|
nuclear@1
|
100 "Not Implemented", /* 501 */
|
nuclear@1
|
101 "Bad Gateway", /* 502 */
|
nuclear@1
|
102 "Service Unavailable", /* 503 */
|
nuclear@1
|
103 "Gateway Time-out", /* 504 */
|
nuclear@1
|
104 "HTTP Version not supported" /* 505 */
|
nuclear@1
|
105 };
|
nuclear@1
|
106
|
nuclear@1
|
107 #endif /* HTTP_H_ */
|