nuclear@1: #ifndef HTTP_H_ nuclear@1: #define HTTP_H_ nuclear@1: nuclear@1: enum http_method { nuclear@1: HTTP_UNKNOWN, nuclear@1: HTTP_OPTIONS, nuclear@1: HTTP_GET, nuclear@1: HTTP_HEAD, nuclear@1: HTTP_POST, nuclear@1: HTTP_PUT, nuclear@1: HTTP_DELETE, nuclear@1: HTTP_TRACE, nuclear@1: HTTP_CONNECT, nuclear@1: nuclear@1: NUM_HTTP_METHODS nuclear@1: }; nuclear@1: nuclear@1: const char *http_method_str[] = { nuclear@1: "", nuclear@1: "OPTIONS", nuclear@1: "GET", nuclear@1: "HEAD", nuclear@1: "POST", nuclear@1: "PUT", nuclear@1: "DELETE", nuclear@1: "TRACE", nuclear@1: "CONNECT", nuclear@1: 0 nuclear@1: }; nuclear@1: nuclear@1: nuclear@1: struct http_req_header { nuclear@1: enum http_method method; nuclear@1: char *uri; nuclear@1: int ver_major, ver_minor; /* http version */ nuclear@1: /* XXX cont. */ nuclear@1: }; nuclear@1: nuclear@1: nuclear@1: /* HTTP 1xx message strings */ nuclear@1: const char *http_msg1xx[] = { nuclear@1: "Continue", /* 100 */ nuclear@1: "Switching Protocols" /* 101 */ nuclear@1: }; nuclear@1: nuclear@1: /* HTTP 2xx message strings */ nuclear@1: const char *http_msg2xx[] = { nuclear@1: "OK", /* 200 */ nuclear@1: "Created", /* 201 */ nuclear@1: "Accepted", /* 202 */ nuclear@1: "Non-Authoritative Information", /* 203 */ nuclear@1: "No Content", /* 204 */ nuclear@1: "Reset Content", /* 205 */ nuclear@1: "Partial Content" /* 206 */ nuclear@1: }; nuclear@1: nuclear@1: /* HTTP 3xx message strings */ nuclear@1: const char *http_msg3xx[] = { nuclear@1: "Multiple Choices", /* 300 */ nuclear@1: "Moved Permanently", /* 301 */ nuclear@1: "Found", /* 302 */ nuclear@1: "See Other", /* 303 */ nuclear@1: "Not Modified", /* 304 */ nuclear@1: "Use Proxy", /* 305 */ nuclear@1: "", /* 306 is undefined? */ nuclear@1: "Temporary Redirect" /* 307 */ nuclear@1: }; nuclear@1: nuclear@1: /* HTTP 4xx error strings */ nuclear@1: const char *http_msg4xx[] = { nuclear@1: "Bad Request", /* 400 */ nuclear@1: "Unauthorized", /* 401 */ nuclear@1: "What the Fuck?", /* 402 */ nuclear@1: "Forbidden", /* 403 */ nuclear@1: "Not Found", /* 404 */ nuclear@1: "Method Not Allowed", /* 405 */ nuclear@1: "Not Acceptable", /* 406 */ nuclear@1: "Proxy Authentication Required", /* 407 */ nuclear@1: "Request Time-out", /* 408 */ nuclear@1: "Conflict", /* 409 */ nuclear@1: "Gone", /* 410 */ nuclear@1: "Length Required", /* 411 */ nuclear@1: "Precondition Failed", /* 412 */ nuclear@1: "Request Entity Too Large", /* 413 */ nuclear@1: "Request-URI Too Large", /* 414 */ nuclear@1: "Unsupported Media Type", /* 415 */ nuclear@1: "Request range not satisfiable", /* 416 */ nuclear@1: "Expectation Failed" /* 417 */ nuclear@1: }; nuclear@1: nuclear@1: /* HTTP 5xx error strings */ nuclear@1: const char *http_msg5xx[] = { nuclear@1: "Internal Server Error", /* 500 */ nuclear@1: "Not Implemented", /* 501 */ nuclear@1: "Bad Gateway", /* 502 */ nuclear@1: "Service Unavailable", /* 503 */ nuclear@1: "Gateway Time-out", /* 504 */ nuclear@1: "HTTP Version not supported" /* 505 */ nuclear@1: }; nuclear@1: nuclear@1: const char *http_strmsg(int code); nuclear@1: nuclear@1: #endif /* HTTP_H_ */