tinywebd

annotate src/http.h @ 1:f425a9805d17

foo
author John Tsiombikas <nuclear@member.fsf.org>
date Tue, 14 Apr 2015 08:32:51 +0300
parents
children 7bb4c2a0a360
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@1 36 /* XXX cont. */
nuclear@1 37 };
nuclear@1 38
nuclear@1 39
nuclear@1 40 /* HTTP 1xx message strings */
nuclear@1 41 const char *http_msg1xx[] = {
nuclear@1 42 "Continue", /* 100 */
nuclear@1 43 "Switching Protocols" /* 101 */
nuclear@1 44 };
nuclear@1 45
nuclear@1 46 /* HTTP 2xx message strings */
nuclear@1 47 const char *http_msg2xx[] = {
nuclear@1 48 "OK", /* 200 */
nuclear@1 49 "Created", /* 201 */
nuclear@1 50 "Accepted", /* 202 */
nuclear@1 51 "Non-Authoritative Information", /* 203 */
nuclear@1 52 "No Content", /* 204 */
nuclear@1 53 "Reset Content", /* 205 */
nuclear@1 54 "Partial Content" /* 206 */
nuclear@1 55 };
nuclear@1 56
nuclear@1 57 /* HTTP 3xx message strings */
nuclear@1 58 const char *http_msg3xx[] = {
nuclear@1 59 "Multiple Choices", /* 300 */
nuclear@1 60 "Moved Permanently", /* 301 */
nuclear@1 61 "Found", /* 302 */
nuclear@1 62 "See Other", /* 303 */
nuclear@1 63 "Not Modified", /* 304 */
nuclear@1 64 "Use Proxy", /* 305 */
nuclear@1 65 "<unknown>", /* 306 is undefined? */
nuclear@1 66 "Temporary Redirect" /* 307 */
nuclear@1 67 };
nuclear@1 68
nuclear@1 69 /* HTTP 4xx error strings */
nuclear@1 70 const char *http_msg4xx[] = {
nuclear@1 71 "Bad Request", /* 400 */
nuclear@1 72 "Unauthorized", /* 401 */
nuclear@1 73 "What the Fuck?", /* 402 */
nuclear@1 74 "Forbidden", /* 403 */
nuclear@1 75 "Not Found", /* 404 */
nuclear@1 76 "Method Not Allowed", /* 405 */
nuclear@1 77 "Not Acceptable", /* 406 */
nuclear@1 78 "Proxy Authentication Required", /* 407 */
nuclear@1 79 "Request Time-out", /* 408 */
nuclear@1 80 "Conflict", /* 409 */
nuclear@1 81 "Gone", /* 410 */
nuclear@1 82 "Length Required", /* 411 */
nuclear@1 83 "Precondition Failed", /* 412 */
nuclear@1 84 "Request Entity Too Large", /* 413 */
nuclear@1 85 "Request-URI Too Large", /* 414 */
nuclear@1 86 "Unsupported Media Type", /* 415 */
nuclear@1 87 "Request range not satisfiable", /* 416 */
nuclear@1 88 "Expectation Failed" /* 417 */
nuclear@1 89 };
nuclear@1 90
nuclear@1 91 /* HTTP 5xx error strings */
nuclear@1 92 const char *http_msg5xx[] = {
nuclear@1 93 "Internal Server Error", /* 500 */
nuclear@1 94 "Not Implemented", /* 501 */
nuclear@1 95 "Bad Gateway", /* 502 */
nuclear@1 96 "Service Unavailable", /* 503 */
nuclear@1 97 "Gateway Time-out", /* 504 */
nuclear@1 98 "HTTP Version not supported" /* 505 */
nuclear@1 99 };
nuclear@1 100
nuclear@1 101 const char *http_strmsg(int code);
nuclear@1 102
nuclear@1 103 #endif /* HTTP_H_ */