You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2012/05/05 19:27:58 UTC
git commit: TS-1248: Update HTTP status codes and strings
Updated Branches:
refs/heads/master a2fd13c83 -> 58bc52e99
TS-1248: Update HTTP status codes and strings
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/58bc52e9
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/58bc52e9
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/58bc52e9
Branch: refs/heads/master
Commit: 58bc52e99a7dcd10d632befb40d127bddf889c49
Parents: a2fd13c
Author: James Peach <jp...@apache.org>
Authored: Tue May 1 21:17:19 2012 -0700
Committer: James Peach <jp...@apache.org>
Committed: Sat May 5 10:27:42 2012 -0700
----------------------------------------------------------------------
CHANGES | 2 +
proxy/InkAPITest.cc | 2 +-
proxy/api/ts/ts.h.in | 21 ++++++-
proxy/hdrs/HTTP.cc | 158 ++++++++++++++++++++++-----------------------
proxy/hdrs/HTTP.h | 2 +-
5 files changed, 100 insertions(+), 85 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/58bc52e9/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 314f3ab..6315a18 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,7 @@
-*- coding: utf-8 -*-
Changes with Apache Traffic Server 3.1.4
+ *) [TS-1248] update HTTP status codes and strings
+
*) [TS-1245] proxy.config.http.connect_ports may be '*'
*) [TS-1239] TSHttpTxnServerAddrSet implementation
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/58bc52e9/proxy/InkAPITest.cc
----------------------------------------------------------------------
diff --git a/proxy/InkAPITest.cc b/proxy/InkAPITest.cc
index 4df2b0e..1a65983 100644
--- a/proxy/InkAPITest.cc
+++ b/proxy/InkAPITest.cc
@@ -3392,7 +3392,7 @@ REGRESSION_TEST(SDK_API_TSHttpHdr) (RegressionTest * test, int atype, int *pstat
test_passed_Http_Hdr_Reason_Lookup = true;
}
- if (strcmp("Ok", TSHttpHdrReasonLookup(TS_HTTP_STATUS_OK)) != 0) {
+ if (strcmp("OK", TSHttpHdrReasonLookup(TS_HTTP_STATUS_OK)) != 0) {
SDK_RPRINT(test, "TSHttpHdrReasonLookup", "TestCase2", TC_FAIL,
"TSHttpHdrReasonLookup returns Value's mismatch");
if (test_passed_Http_Hdr_Reason_Lookup == true) {
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/58bc52e9/proxy/api/ts/ts.h.in
----------------------------------------------------------------------
diff --git a/proxy/api/ts/ts.h.in b/proxy/api/ts/ts.h.in
index 66f30a0..0c5dce8 100644
--- a/proxy/api/ts/ts.h.in
+++ b/proxy/api/ts/ts.h.in
@@ -145,6 +145,9 @@ extern "C"
TS_HTTP_STATUS_NO_CONTENT = 204,
TS_HTTP_STATUS_RESET_CONTENT = 205,
TS_HTTP_STATUS_PARTIAL_CONTENT = 206,
+ TS_HTTP_STATUS_MULTI_STATUS = 207,
+ TS_HTTP_STATUS_ALREADY_REPORTED = 208,
+ TS_HTTP_STATUS_IM_USED = 211,
TS_HTTP_STATUS_MULTIPLE_CHOICES = 300,
TS_HTTP_STATUS_MOVED_PERMANENTLY = 301,
@@ -153,6 +156,7 @@ extern "C"
TS_HTTP_STATUS_NOT_MODIFIED = 304,
TS_HTTP_STATUS_USE_PROXY = 305,
TS_HTTP_STATUS_TEMPORARY_REDIRECT = 307,
+ TS_HTTP_STATUS_PERMANENT_REDIRECT = 308,
TS_HTTP_STATUS_BAD_REQUEST = 400,
TS_HTTP_STATUS_UNAUTHORIZED = 401,
@@ -170,13 +174,28 @@ extern "C"
TS_HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE = 413,
TS_HTTP_STATUS_REQUEST_URI_TOO_LONG = 414,
TS_HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE = 415,
+ TS_HTTP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE = 416,
+ TS_HTTP_STATUS_EXPECTATION_FAILED = 417,
+ TS_HTTP_STATUS_UNPROCESSABLE_ENTITY = 422,
+ TS_HTTP_STATUS_LOCKED = 423,
+ TS_HTTP_STATUS_FAILED_DEPENDENCY = 424,
+ TS_HTTP_STATUS_UPGRADE_REQUIRED = 426,
+ TS_HTTP_STATUS_PRECONDITION_REQUIRED = 428,
+ TS_HTTP_STATUS_TOO_MANY_REQUESTS = 429,
+ TS_HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE = 431,
TS_HTTP_STATUS_INTERNAL_SERVER_ERROR = 500,
TS_HTTP_STATUS_NOT_IMPLEMENTED = 501,
TS_HTTP_STATUS_BAD_GATEWAY = 502,
TS_HTTP_STATUS_SERVICE_UNAVAILABLE = 503,
TS_HTTP_STATUS_GATEWAY_TIMEOUT = 504,
- TS_HTTP_STATUS_HTTPVER_NOT_SUPPORTED = 505
+ TS_HTTP_STATUS_HTTPVER_NOT_SUPPORTED = 505,
+ TS_HTTP_STATUS_VARIANT_ALSO_NEGOTIATES = 506,
+ TS_HTTP_STATUS_INSUFFICIENT_STORAGE = 507,
+ TS_HTTP_STATUS_LOOP_DETECTED = 508,
+ TS_HTTP_STATUS_NOT_EXTENDED = 510,
+ TS_HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED = 511
+
} TSHttpStatus;
/**
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/58bc52e9/proxy/hdrs/HTTP.cc
----------------------------------------------------------------------
diff --git a/proxy/hdrs/HTTP.cc b/proxy/hdrs/HTTP.cc
index fcc8fb8..2ccad25 100644
--- a/proxy/hdrs/HTTP.cc
+++ b/proxy/hdrs/HTTP.cc
@@ -741,92 +741,86 @@ http_hdr_reason_set(HdrHeap *heap, HTTPHdrImpl *hh, const char *value, int lengt
-------------------------------------------------------------------------*/
const char *
-http_hdr_reason_lookup(HTTPStatus status)
+http_hdr_reason_lookup(unsigned status)
{
+#define HTTP_STATUS_ENTRY(value, reason) \
+ case value: return #reason
+
switch (status) {
- case HTTP_STATUS_NONE:
- return "None";
- case HTTP_STATUS_CONTINUE:
- return "Continue";
- case HTTP_STATUS_SWITCHING_PROTOCOL:
- return "Switching Protocol";
- case HTTP_STATUS_OK:
- return "Ok";
- case HTTP_STATUS_CREATED:
- return "Created";
- case HTTP_STATUS_ACCEPTED:
- return "Accepted";
- case HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION:
- return "Non Authoritative Information";
- case HTTP_STATUS_NO_CONTENT:
- return "No Content";
- case HTTP_STATUS_RESET_CONTENT:
- return "Reset Content";
- case HTTP_STATUS_PARTIAL_CONTENT:
- return "Partial Content";
- case HTTP_STATUS_MULTIPLE_CHOICES:
- return "Multiple Choices";
- case HTTP_STATUS_MOVED_PERMANENTLY:
- return "Moved Permanently";
- case HTTP_STATUS_MOVED_TEMPORARILY:
- return "Moved Temporarily";
- case HTTP_STATUS_SEE_OTHER:
- return "See Other";
- case HTTP_STATUS_NOT_MODIFIED:
- return "Not Modified";
- case HTTP_STATUS_USE_PROXY:
- return "Use Proxy";
- case HTTP_STATUS_TEMPORARY_REDIRECT:
- return "Temporary Redirect";
- case HTTP_STATUS_BAD_REQUEST:
- return "Bad Request";
- case HTTP_STATUS_UNAUTHORIZED:
- return "Unauthorized";
- case HTTP_STATUS_PAYMENT_REQUIRED:
- return "Payment Required";
- case HTTP_STATUS_FORBIDDEN:
- return "Forbidden";
- case HTTP_STATUS_NOT_FOUND:
- return "Not Found";
- case HTTP_STATUS_METHOD_NOT_ALLOWED:
- return "Method Not Allowed";
- case HTTP_STATUS_NOT_ACCEPTABLE:
- return "Not Acceptable";
- case HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED:
- return "Proxy Authentication Required";
- case HTTP_STATUS_REQUEST_TIMEOUT:
- return "Request Timeout";
- case HTTP_STATUS_CONFLICT:
- return "Conflict";
- case HTTP_STATUS_GONE:
- return "Gone";
- case HTTP_STATUS_LENGTH_REQUIRED:
- return "Length Required";
- case HTTP_STATUS_PRECONDITION_FAILED:
- return "Precondition Failed";
- case HTTP_STATUS_RANGE_NOT_SATISFIABLE:
- return "Requested Range Not Satisfiable";
- case HTTP_STATUS_REQUEST_ENTITY_TOO_LARGE:
- return "Request Entity Too Large";
- case HTTP_STATUS_REQUEST_URI_TOO_LONG:
- return "Request URI Too Long";
- case HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE:
- return "Unsupported Media Type";
- case HTTP_STATUS_INTERNAL_SERVER_ERROR:
- return "Internal Server Error";
- case HTTP_STATUS_NOT_IMPLEMENTED:
- return "Not Implemented";
- case HTTP_STATUS_BAD_GATEWAY:
- return "Bad Gateway";
- case HTTP_STATUS_SERVICE_UNAVAILABLE:
- return "Service Unavailable";
- case HTTP_STATUS_GATEWAY_TIMEOUT:
- return "Gateway Timeout";
- case HTTP_STATUS_HTTPVER_NOT_SUPPORTED:
- return "HTTP Version Not Supported";
+ HTTP_STATUS_ENTRY(0, None); // TS_HTTP_STATUS_NONE
+ HTTP_STATUS_ENTRY(100, Continue); // [RFC2616]
+ HTTP_STATUS_ENTRY(101, Switching Protocols); // [RFC2616]
+ HTTP_STATUS_ENTRY(102, Processing); // [RFC2518]
+ // 103-199 Unassigned
+ HTTP_STATUS_ENTRY(200, OK); // [RFC2616]
+ HTTP_STATUS_ENTRY(201, Created); // [RFC2616]
+ HTTP_STATUS_ENTRY(202, Accepted); // [RFC2616]
+ HTTP_STATUS_ENTRY(203, Non-Authoritative Information); // [RFC2616]
+ HTTP_STATUS_ENTRY(204, No Content); // [RFC2616]
+ HTTP_STATUS_ENTRY(205, Reset Content); // [RFC2616]
+ HTTP_STATUS_ENTRY(206, Partial Content); // [RFC2616]
+ HTTP_STATUS_ENTRY(207, Multi-Status); // [RFC4918]
+ HTTP_STATUS_ENTRY(208, Already Reported); // [RFC5842]
+ // 209-225 Unassigned
+ HTTP_STATUS_ENTRY(226, IM Used); // [RFC3229]
+ // 227-299 Unassigned
+ HTTP_STATUS_ENTRY(300, Multiple Choices); // [RFC2616]
+ HTTP_STATUS_ENTRY(301, Moved Permanently); // [RFC2616]
+ HTTP_STATUS_ENTRY(302, Found); // [RFC2616]
+ HTTP_STATUS_ENTRY(303, See Other); // [RFC2616]
+ HTTP_STATUS_ENTRY(304, Not Modified); // [RFC2616]
+ HTTP_STATUS_ENTRY(305, Use Proxy); // [RFC2616]
+ // 306 Reserved // [RFC2616]
+ HTTP_STATUS_ENTRY(307, Temporary Redirect); // [RFC2616]
+ HTTP_STATUS_ENTRY(308, Permanent Redirect); // [RFC-reschke-http-status-308-07]
+ // 309-399 Unassigned
+ HTTP_STATUS_ENTRY(400, Bad Request); // [RFC2616]
+ HTTP_STATUS_ENTRY(401, Unauthorized); // [RFC2616]
+ HTTP_STATUS_ENTRY(402, Payment Required); // [RFC2616]
+ HTTP_STATUS_ENTRY(403, Forbidden); // [RFC2616]
+ HTTP_STATUS_ENTRY(404, Not Found); // [RFC2616]
+ HTTP_STATUS_ENTRY(405, Method Not Allowed); // [RFC2616]
+ HTTP_STATUS_ENTRY(406, Not Acceptable); // [RFC2616]
+ HTTP_STATUS_ENTRY(407, Proxy Authentication Required); // [RFC2616]
+ HTTP_STATUS_ENTRY(408, Request Timeout); // [RFC2616]
+ HTTP_STATUS_ENTRY(409, Conflict); // [RFC2616]
+ HTTP_STATUS_ENTRY(410, Gone); // [RFC2616]
+ HTTP_STATUS_ENTRY(411, Length Required); // [RFC2616]
+ HTTP_STATUS_ENTRY(412, Precondition Failed); // [RFC2616]
+ HTTP_STATUS_ENTRY(413, Request Entity Too Large); // [RFC2616]
+ HTTP_STATUS_ENTRY(414, Request-URI Too Long); // [RFC2616]
+ HTTP_STATUS_ENTRY(415, Unsupported Media Type); // [RFC2616]
+ HTTP_STATUS_ENTRY(416, Requested Range Not Satisfiable); // [RFC2616]
+ HTTP_STATUS_ENTRY(417, Expectation Failed); // [RFC2616]
+ HTTP_STATUS_ENTRY(422, Unprocessable Entity); // [RFC4918]
+ HTTP_STATUS_ENTRY(423, Locked); // [RFC4918]
+ HTTP_STATUS_ENTRY(424, Failed Dependency); // [RFC4918]
+ // 425 Reserved // [RFC2817]
+ HTTP_STATUS_ENTRY(426, Upgrade Required); // [RFC2817]
+ // 427 Unassigned
+ HTTP_STATUS_ENTRY(428, Precondition Required); // [RFC6585]
+ HTTP_STATUS_ENTRY(429, Too Many Requests); // [RFC6585]
+ // 430 Unassigned
+ HTTP_STATUS_ENTRY(431, Request Header Fields Too Large); // [RFC6585]
+ // 432-499 Unassigned
+ HTTP_STATUS_ENTRY(500, Internal Server Error); // [RFC2616]
+ HTTP_STATUS_ENTRY(501, Not Implemented); // [RFC2616]
+ HTTP_STATUS_ENTRY(502, Bad Gateway); // [RFC2616]
+ HTTP_STATUS_ENTRY(503, Service Unavailable); // [RFC2616]
+ HTTP_STATUS_ENTRY(504, Gateway Timeout); // [RFC2616]
+ HTTP_STATUS_ENTRY(505, HTTP Version Not Supported); // [RFC2616]
+ HTTP_STATUS_ENTRY(506, Variant Also Negotiates); // [RFC2295]
+ HTTP_STATUS_ENTRY(507, Insufficient Storage); // [RFC4918]
+ HTTP_STATUS_ENTRY(508, Loop Detected); // [RFC5842]
+ // 509 Unassigned
+ HTTP_STATUS_ENTRY(510, Not Extended); // [RFC2774]
+ HTTP_STATUS_ENTRY(511, Network Authentication Required); // [RFC6585]
+ // 512-599 Unassigned
}
- return (NULL);
+#undef HTTP_STATUS_ENTRY
+
+ return NULL;
}
/*-------------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/58bc52e9/proxy/hdrs/HTTP.h
----------------------------------------------------------------------
diff --git a/proxy/hdrs/HTTP.h b/proxy/hdrs/HTTP.h
index 06a1fcf..d936a5c 100644
--- a/proxy/hdrs/HTTP.h
+++ b/proxy/hdrs/HTTP.h
@@ -475,7 +475,7 @@ void http_hdr_url_set(HdrHeap *heap, HTTPHdrImpl *hh, URLImpl *url);
void http_hdr_status_set(HTTPHdrImpl *hh, HTTPStatus status);
const char *http_hdr_reason_get(HTTPHdrImpl *hh, int *length);
void http_hdr_reason_set(HdrHeap *heap, HTTPHdrImpl *hh, const char *value, int length, bool must_copy);
-const char *http_hdr_reason_lookup(HTTPStatus status);
+const char *http_hdr_reason_lookup(unsigned status);
void http_parser_init(HTTPParser *parser);
void http_parser_clear(HTTPParser *parser);