From 7dfff935d60cb3bb56cc1c96f685b50cc4e6cd6f Mon Sep 17 00:00:00 2001 From: kuiash <matthew@kuiash.com> Date: Tue, 29 Jul 2014 12:48:22 +0100 Subject: [PATCH] Populate HTTP warning codes Includes changing 201 "Server Error" to "Internal Server Error" List mostly borrowed from here http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml 418 and 451 also added Local testing showed a problem with 202 reported as "Server Error" instead of "Accepted" --- mongoose.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/mongoose.c b/mongoose.c index 6528790d9..d83ec0c65 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1544,23 +1544,72 @@ static void parse_http_headers(char **buf, struct mg_connection *ri) { static const char *status_code_to_str(int status_code) { switch (status_code) { + + case 100: return "Continue"; + case 101: return "Switching Protocols"; + case 102: return "Processing"; + case 200: return "OK"; case 201: return "Created"; + case 202: return "Accepted"; + case 203: return "Non-Authoritative Information"; case 204: return "No Content"; + case 205: return "Reset Content"; + case 206: return "Partial Content"; + case 207: return "Multi-Status"; + case 208: return "Already Reported"; + case 226: return "IM Used"; + + case 300: return "Multiple Choices"; case 301: return "Moved Permanently"; case 302: return "Found"; + case 303: return "See Other"; case 304: return "Not Modified"; + case 305: return "Use Proxy"; + case 306: return "Switch Proxy"; + case 307: return "Temporary Redirect"; + case 308: return "Permanent Redirect"; + case 400: return "Bad Request"; + case 401: return "Unauthorized"; + case 402: return "Payment Required"; case 403: return "Forbidden"; case 404: return "Not Found"; case 405: return "Method Not Allowed"; + case 406: return "Not Acceptable"; + case 407: return "Proxy Authentication Required"; + case 408: return "Request Timeout"; case 409: return "Conflict"; + case 410: return "Gone"; case 411: return "Length Required"; - case 413: return "Request Entity Too Large"; + case 412: return "Precondition Failed"; + case 413: return "Payload Too Large"; + case 414: return "URI Too Long"; case 415: return "Unsupported Media Type"; + case 416: return "Requested Range Not Satisfiable"; + case 417: return "Expectation Failed"; + case 418: return "I\'m a teapot"; + case 422: return "Unprocessable Entity"; case 423: return "Locked"; - case 500: return "Server Error"; + case 424: return "Failed Dependency"; + case 426: return "Upgrade Required"; + case 428: return "Precondition Required"; + case 429: return "Too Many Requests"; + case 431: return "Request Header Fields Too Large"; + case 451: return "Unavailable For Legal Reasons"; + + case 500: return "Internal Server Error"; case 501: return "Not Implemented"; + case 502: return "Bad Gateway"; + case 503: return "Service Unavailable"; + case 504: return "Gateway Timeout"; + case 505: return "HTTP Version Not Supported"; + case 506: return "Variant Also Negotiates"; + case 507: return "Insufficient Storage"; + case 508: return "Loop Detected"; + case 510: return "Not Extended"; + case 511: return "Network Authentication Required"; + default: return "Server Error"; } } -- GitLab