summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeny Grin (Karlson2k) <k2k@narod.ru>2019-06-09 11:48:08 +0300
committerEvgeny Grin (Karlson2k) <k2k@narod.ru>2019-06-09 12:14:30 +0300
commit6c1d4ad70173f8cd14887daa9f19cd85abad9c5b (patch)
tree4f54671efdc5af86a32e7f1ca9c5933da7c6b0da
parente5f188a4cb924508d49419a1fb7ca98b5740f423 (diff)
Updated HTTP status codes
-rw-r--r--src/include/microhttpd.h67
-rw-r--r--src/microhttpd/reason_phrase.c209
2 files changed, 171 insertions, 105 deletions
diff --git a/src/include/microhttpd.h b/src/include/microhttpd.h
index 70a1b5be..89628d8b 100644
--- a/src/include/microhttpd.h
+++ b/src/include/microhttpd.h
@@ -304,79 +304,144 @@ _MHD_DEPR_MACRO("Macro MHD_LONG_LONG_PRINTF is deprecated, use MHD_UNSIGNED_LONG
/**
* @defgroup httpcode HTTP response codes.
* These are the status codes defined for HTTP responses.
+ * See: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
+ * Registry export date: 2019-06-09
* @{
*/
-/* See http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml */
+/* 100 "Continue". RFC7231, Section 6.2.1. */
#define MHD_HTTP_CONTINUE 100
+/* 101 "Switching Protocols". RFC7231, Section 6.2.2. */
#define MHD_HTTP_SWITCHING_PROTOCOLS 101
+/* 102 "Processing". RFC2518. */
#define MHD_HTTP_PROCESSING 102
+/* 103 "Early Hints". RFC8297. */
+#define MHD_HTTP_EARLY_HINTS 103
+/* 200 "OK". RFC7231, Section 6.3.1. */
#define MHD_HTTP_OK 200
+/* 201 "Created". RFC7231, Section 6.3.2. */
#define MHD_HTTP_CREATED 201
+/* 202 "Accepted". RFC7231, Section 6.3.3. */
#define MHD_HTTP_ACCEPTED 202
+/* 203 "Non-Authoritative Information". RFC7231, Section 6.3.4. */
#define MHD_HTTP_NON_AUTHORITATIVE_INFORMATION 203
+/* 204 "No Content". RFC7231, Section 6.3.5. */
#define MHD_HTTP_NO_CONTENT 204
+/* 205 "Reset Content". RFC7231, Section 6.3.6. */
#define MHD_HTTP_RESET_CONTENT 205
+/* 206 "Partial Content". RFC7233, Section 4.1. */
#define MHD_HTTP_PARTIAL_CONTENT 206
+/* 207 "Multi-Status". RFC4918. */
#define MHD_HTTP_MULTI_STATUS 207
+/* 208 "Already Reported". RFC5842. */
#define MHD_HTTP_ALREADY_REPORTED 208
+/* 226 "IM Used". RFC3229. */
#define MHD_HTTP_IM_USED 226
+/* 300 "Multiple Choices". RFC7231, Section 6.4.1. */
#define MHD_HTTP_MULTIPLE_CHOICES 300
+/* 301 "Moved Permanently". RFC7231, Section 6.4.2. */
#define MHD_HTTP_MOVED_PERMANENTLY 301
+/* 302 "Found". RFC7231, Section 6.4.3. */
#define MHD_HTTP_FOUND 302
+/* 303 "See Other". RFC7231, Section 6.4.4. */
#define MHD_HTTP_SEE_OTHER 303
+/* 304 "Not Modified". RFC7232, Section 4.1. */
#define MHD_HTTP_NOT_MODIFIED 304
+/* 305 "Use Proxy". RFC7231, Section 6.4.5. */
#define MHD_HTTP_USE_PROXY 305
+/* 306 "Switch Proxy". Not used! RFC7231, Section 6.4.6. */
#define MHD_HTTP_SWITCH_PROXY 306
+/* 307 "Temporary Redirect". RFC7231, Section 6.4.7. */
#define MHD_HTTP_TEMPORARY_REDIRECT 307
+/* 308 "Permanent Redirect". RFC7538. */
#define MHD_HTTP_PERMANENT_REDIRECT 308
+/* 400 "Bad Request". RFC7231, Section 6.5.1. */
#define MHD_HTTP_BAD_REQUEST 400
+/* 401 "Unauthorized". RFC7235, Section 3.1. */
#define MHD_HTTP_UNAUTHORIZED 401
+/* 402 "Payment Required". RFC7231, Section 6.5.2. */
#define MHD_HTTP_PAYMENT_REQUIRED 402
+/* 403 "Forbidden". RFC7231, Section 6.5.3. */
#define MHD_HTTP_FORBIDDEN 403
+/* 404 "Not Found". RFC7231, Section 6.5.4. */
#define MHD_HTTP_NOT_FOUND 404
+/* 405 "Method Not Allowed". RFC7231, Section 6.5.5. */
#define MHD_HTTP_METHOD_NOT_ALLOWED 405
+/* 406 "Not Acceptable". RFC7231, Section 6.5.6. */
#define MHD_HTTP_NOT_ACCEPTABLE 406
+/* 407 "Proxy Authentication Required". RFC7235, Section 3.2. */
#define MHD_HTTP_PROXY_AUTHENTICATION_REQUIRED 407
+/* 408 "Request Timeout". RFC7231, Section 6.5.7. */
#define MHD_HTTP_REQUEST_TIMEOUT 408
+/* 409 "Conflict". RFC7231, Section 6.5.8. */
#define MHD_HTTP_CONFLICT 409
+/* 410 "Gone". RFC7231, Section 6.5.9. */
#define MHD_HTTP_GONE 410
+/* 411 "Length Required". RFC7231, Section 6.5.10. */
#define MHD_HTTP_LENGTH_REQUIRED 411
+/* 412 "Precondition Failed". RFC7232, Section 4.2; RFC8144, Section 3.2. */
#define MHD_HTTP_PRECONDITION_FAILED 412
+/* 413 "Payload Too Large". RFC7231, Section 6.5.11. */
#define MHD_HTTP_PAYLOAD_TOO_LARGE 413
+/* 414 "URI Too Long". RFC7231, Section 6.5.12. */
#define MHD_HTTP_URI_TOO_LONG 414
+/* 415 "Unsupported Media Type". RFC7231, Section 6.5.13; RFC7694, Section 3. */
#define MHD_HTTP_UNSUPPORTED_MEDIA_TYPE 415
+/* 416 "Range Not Satisfiable". RFC7233, Section 4.4. */
#define MHD_HTTP_RANGE_NOT_SATISFIABLE 416
+/* 417 "Expectation Failed". RFC7231, Section 6.5.14. */
#define MHD_HTTP_EXPECTATION_FAILED 417
+/* 421 "Misdirected Request". RFC7540, Section 9.1.2. */
#define MHD_HTTP_MISDIRECTED_REQUEST 421
+/* 422 "Unprocessable Entity". RFC4918. */
#define MHD_HTTP_UNPROCESSABLE_ENTITY 422
+/* 423 "Locked". RFC4918. */
#define MHD_HTTP_LOCKED 423
+/* 424 "Failed Dependency". RFC4918. */
#define MHD_HTTP_FAILED_DEPENDENCY 424
+/* 425 "Too Early". RFC8470. */
+#define MHD_HTTP_TOO_EARLY 425
+/* 426 "Upgrade Required". RFC7231, Section 6.5.15. */
#define MHD_HTTP_UPGRADE_REQUIRED 426
+/* 428 "Precondition Required". RFC6585. */
#define MHD_HTTP_PRECONDITION_REQUIRED 428
+/* 429 "Too Many Requests". RFC6585. */
#define MHD_HTTP_TOO_MANY_REQUESTS 429
+/* 431 "Request Header Fields Too Large". RFC6585. */
#define MHD_HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE 431
+/* 451 "Unavailable For Legal Reasons". RFC7725. */
#define MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS 451
+/* 500 "Internal Server Error". RFC7231, Section 6.6.1. */
#define MHD_HTTP_INTERNAL_SERVER_ERROR 500
+/* 501 "Not Implemented". RFC7231, Section 6.6.2. */
#define MHD_HTTP_NOT_IMPLEMENTED 501
+/* 502 "Bad Gateway". RFC7231, Section 6.6.3. */
#define MHD_HTTP_BAD_GATEWAY 502
+/* 503 "Service Unavailable". RFC7231, Section 6.6.4. */
#define MHD_HTTP_SERVICE_UNAVAILABLE 503
+/* 504 "Gateway Timeout". RFC7231, Section 6.6.5. */
#define MHD_HTTP_GATEWAY_TIMEOUT 504
+/* 505 "HTTP Version Not Supported". RFC7231, Section 6.6.6. */
#define MHD_HTTP_HTTP_VERSION_NOT_SUPPORTED 505
+/* 506 "Variant Also Negotiates". RFC2295. */
#define MHD_HTTP_VARIANT_ALSO_NEGOTIATES 506
+/* 507 "Insufficient Storage". RFC4918. */
#define MHD_HTTP_INSUFFICIENT_STORAGE 507
+/* 508 "Loop Detected". RFC5842. */
#define MHD_HTTP_LOOP_DETECTED 508
+/* 510 "Not Extended". RFC2774. */
#define MHD_HTTP_NOT_EXTENDED 510
+/* 511 "Network Authentication Required". RFC6585. */
#define MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED 511
diff --git a/src/microhttpd/reason_phrase.c b/src/microhttpd/reason_phrase.c
index a6ffc75f..d6fe8330 100644
--- a/src/microhttpd/reason_phrase.c
+++ b/src/microhttpd/reason_phrase.c
@@ -1,6 +1,6 @@
/*
This file is part of libmicrohttpd
- Copyright (C) 2007, 2011, 2017 Christian Grothoff, Karlson2k (Evgeny Grin)
+ Copyright (C) 2007, 2011, 2017, 2019 Christian Grothoff, Karlson2k (Evgeny Grin)
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -36,121 +36,122 @@ static const char *const invalid_hundred[] = {
};
static const char *const one_hundred[] = {
- "Continue",
- "Switching Protocols",
- "Processing"
+ /* 100 */ "Continue" /* RFC7231, Section 6.2.1 */,
+ /* 101 */ "Switching Protocols" /* RFC7231, Section 6.2.2 */,
+ /* 102 */ "Processing" /* RFC2518 */,
+ /* 103 */ "Early Hints" /* RFC8297 */
};
static const char *const two_hundred[] = {
- "OK",
- "Created",
- "Accepted",
- "Non-Authoritative Information",
- "No Content",
- "Reset Content",
- "Partial Content",
- "Multi-Status",
- "Already Reported",
- "Unknown",
- "Unknown", /* 210 */
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown", /* 215 */
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown", /* 220 */
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown", /* 225 */
- "IM Used"
+ /* 200 */ "OK" /* RFC7231, Section 6.3.1 */,
+ /* 201 */ "Created" /* RFC7231, Section 6.3.2 */,
+ /* 202 */ "Accepted" /* RFC7231, Section 6.3.3 */,
+ /* 203 */ "Non-Authoritative Information" /* RFC7231, Section 6.3.4 */,
+ /* 204 */ "No Content" /* RFC7231, Section 6.3.5 */,
+ /* 205 */ "Reset Content" /* RFC7231, Section 6.3.6 */,
+ /* 206 */ "Partial Content" /* RFC7233, Section 4.1 */,
+ /* 207 */ "Multi-Status" /* RFC4918 */,
+ /* 208 */ "Already Reported" /* RFC5842 */,
+ /* 209 */ "Unknown" /* Not used */,
+ /* 210 */ "Unknown" /* Not used */,
+ /* 211 */ "Unknown" /* Not used */,
+ /* 212 */ "Unknown" /* Not used */,
+ /* 213 */ "Unknown" /* Not used */,
+ /* 214 */ "Unknown" /* Not used */,
+ /* 215 */ "Unknown" /* Not used */,
+ /* 216 */ "Unknown" /* Not used */,
+ /* 217 */ "Unknown" /* Not used */,
+ /* 218 */ "Unknown" /* Not used */,
+ /* 219 */ "Unknown" /* Not used */,
+ /* 220 */ "Unknown" /* Not used */,
+ /* 221 */ "Unknown" /* Not used */,
+ /* 222 */ "Unknown" /* Not used */,
+ /* 223 */ "Unknown" /* Not used */,
+ /* 224 */ "Unknown" /* Not used */,
+ /* 225 */ "Unknown" /* Not used */,
+ /* 226 */ "IM Used" /* RFC3229 */
};
static const char *const three_hundred[] = {
- "Multiple Choices",
- "Moved Permanently",
- "Found",
- "See Other",
- "Not Modified",
- "Use Proxy",
- "Switch Proxy",
- "Temporary Redirect",
- "Permanent Redirect"
+ /* 300 */ "Multiple Choices" /* RFC7231, Section 6.4.1 */,
+ /* 301 */ "Moved Permanently" /* RFC7231, Section 6.4.2 */,
+ /* 302 */ "Found" /* RFC7231, Section 6.4.3 */,
+ /* 303 */ "See Other" /* RFC7231, Section 6.4.4 */,
+ /* 304 */ "Not Modified" /* RFC7232, Section 4.1 */,
+ /* 305 */ "Use Proxy" /* RFC7231, Section 6.4.5 */,
+ /* 306 */ "Switch Proxy" /* Not used! RFC7231, Section 6.4.6 */,
+ /* 307 */ "Temporary Redirect" /* RFC7231, Section 6.4.7 */,
+ /* 308 */ "Permanent Redirect" /* RFC7538 */
};
static const char *const four_hundred[] = {
- "Bad Request",
- "Unauthorized",
- "Payment Required",
- "Forbidden",
- "Not Found",
- "Method Not Allowed",
- "Not Acceptable",
- "Proxy Authentication Required",
- "Request Timeout",
- "Conflict",
- "Gone",
- "Length Required",
- "Precondition Failed",
- "Payload Too Large",
- "URI Too Long",
- "Unsupported Media Type",
- "Range Not Satisfiable",
- "Expectation Failed",
- "Unknown",
- "Unknown",
- "Unknown", /* 420 */
- "Misdirected Request",
- "Unprocessable Entity",
- "Locked",
- "Failed Dependency",
- "Unordered Collection",
- "Upgrade Required",
- "Unknown",
- "Precondition Required",
- "Too Many Requests",
- "Unknown", /* 430 */
- "Request Header Fields Too Large",
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown", /* 435 */
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown",
- "Unknown", /* 440 */
- "Unknown",
- "Unknown",
- "Unknown",
- "No Response",
- "Unknown", /* 445 */
- "Unknown",
- "Unknown",
- "Unknown",
- "Retry With",
- "Blocked by Windows Parental Controls", /* 450 */
- "Unavailable For Legal Reasons"
+ /* 400 */ "Bad Request" /* RFC7231, Section 6.5.1 */,
+ /* 401 */ "Unauthorized" /* RFC7235, Section 3.1 */,
+ /* 402 */ "Payment Required" /* RFC7231, Section 6.5.2 */,
+ /* 403 */ "Forbidden" /* RFC7231, Section 6.5.3 */,
+ /* 404 */ "Not Found" /* RFC7231, Section 6.5.4 */,
+ /* 405 */ "Method Not Allowed" /* RFC7231, Section 6.5.5 */,
+ /* 406 */ "Not Acceptable" /* RFC7231, Section 6.5.6 */,
+ /* 407 */ "Proxy Authentication Required" /* RFC7235, Section 3.2 */,
+ /* 408 */ "Request Timeout" /* RFC7231, Section 6.5.7 */,
+ /* 409 */ "Conflict" /* RFC7231, Section 6.5.8 */,
+ /* 410 */ "Gone" /* RFC7231, Section 6.5.9 */,
+ /* 411 */ "Length Required" /* RFC7231, Section 6.5.10 */,
+ /* 412 */ "Precondition Failed" /* RFC7232, Section 4.2; RFC8144, Section 3.2 */,
+ /* 413 */ "Payload Too Large" /* RFC7231, Section 6.5.11 */,
+ /* 414 */ "URI Too Long" /* RFC7231, Section 6.5.12 */,
+ /* 415 */ "Unsupported Media Type" /* RFC7231, Section 6.5.13; RFC7694, Section 3 */,
+ /* 416 */ "Range Not Satisfiable" /* RFC7233, Section 4.4 */,
+ /* 417 */ "Expectation Failed" /* RFC7231, Section 6.5.14 */,
+ /* 418 */ "Unknown" /* Not used */,
+ /* 419 */ "Unknown" /* Not used */,
+ /* 420 */ "Unknown" /* Not used */,
+ /* 421 */ "Misdirected Request" /* RFC7540, Section 9.1.2 */,
+ /* 422 */ "Unprocessable Entity" /* RFC4918 */,
+ /* 423 */ "Locked" /* RFC4918 */,
+ /* 424 */ "Failed Dependency" /* RFC4918 */,
+ /* 425 */ "Too Early" /* RFC8470 */,
+ /* 426 */ "Upgrade Required" /* RFC7231, Section 6.5.15 */,
+ /* 427 */ "Unknown" /* Not used */,
+ /* 428 */ "Precondition Required" /* RFC6585 */,
+ /* 429 */ "Too Many Requests" /* RFC6585 */,
+ /* 430 */ "Unknown" /* Not used */,
+ /* 431 */ "Request Header Fields Too Large" /* RFC6585 */,
+ /* 432 */ "Unknown" /* Not used */,
+ /* 433 */ "Unknown" /* Not used */,
+ /* 434 */ "Unknown" /* Not used */,
+ /* 435 */ "Unknown" /* Not used */,
+ /* 436 */ "Unknown" /* Not used */,
+ /* 437 */ "Unknown" /* Not used */,
+ /* 438 */ "Unknown" /* Not used */,
+ /* 439 */ "Unknown" /* Not used */,
+ /* 440 */ "Unknown" /* Not used */,
+ /* 441 */ "Unknown" /* Not used */,
+ /* 442 */ "Unknown" /* Not used */,
+ /* 443 */ "Unknown" /* Not used */,
+ /* 444 */ "Unknown" /* Not used */,
+ /* 445 */ "Unknown" /* Not used */,
+ /* 446 */ "Unknown" /* Not used */,
+ /* 447 */ "Unknown" /* Not used */,
+ /* 448 */ "Unknown" /* Not used */,
+ /* 449 */ "Reply With" /* MS IIS extension */,
+ /* 450 */ "Blocked by Windows Parental Controls" /* MS extension */,
+ /* 451 */ "Unavailable For Legal Reasons" /* RFC7725 */
};
static const char *const five_hundred[] = {
- "Internal Server Error",
- "Not Implemented",
- "Bad Gateway",
- "Service Unavailable",
- "Gateway Timeout",
- "HTTP Version Not Supported",
- "Variant Also Negotiates",
- "Insufficient Storage",
- "Loop Detected",
- "Bandwidth Limit Exceeded",
- "Not Extended",
- "Network Authentication Required"
+ /* 500 */ "Internal Server Error" /* RFC7231, Section 6.6.1 */,
+ /* 501 */ "Not Implemented" /* RFC7231, Section 6.6.2 */,
+ /* 502 */ "Bad Gateway" /* RFC7231, Section 6.6.3 */,
+ /* 503 */ "Service Unavailable" /* RFC7231, Section 6.6.4 */,
+ /* 504 */ "Gateway Timeout" /* RFC7231, Section 6.6.5 */,
+ /* 505 */ "HTTP Version Not Supported" /* RFC7231, Section 6.6.6 */,
+ /* 506 */ "Variant Also Negotiates" /* RFC2295 */,
+ /* 507 */ "Insufficient Storage" /* RFC4918 */,
+ /* 508 */ "Loop Detected" /* RFC5842 */,
+ /* 509 */ "Bandwidth Limit Exceeded" /* Apache extension */,
+ /* 510 */ "Not Extended" /* RFC2774 */,
+ /* 511 */ "Network Authentication Required" /* RFC6585 */
};