From: "mame (Yusuke Endoh)" Date: 2012-05-27T00:30:49+09:00 Subject: [ruby-core:45261] [ruby-trunk - Feature #6480][Assigned] [PATCH] Add HTTP status codes from RFC 6585 Issue #6480 has been updated by mame (Yusuke Endoh). Status changed from Open to Assigned Assignee set to drbrain (Eric Hodel) ---------------------------------------- Feature #6480: [PATCH] Add HTTP status codes from RFC 6585 https://bugs.ruby-lang.org/issues/6480#change-26841 Author: humbroll (Sangil Jung) Status: Assigned Priority: Normal Assignee: drbrain (Eric Hodel) Category: lib Target version: 2.0.0 Hi, Matz and rubyists. I attach a patch that contains additional HTTP status codes from RFC 6585 - http://tools.ietf.org/html/rfc6585. * lib/net/http.rb : add HTTP status codes from RFC 6585. * lib/webrick/httpstatus.rb : add HTTP status codes from RFC 6585. It's simple, isn't it? Thanks. -- ---------------------------------------- Sangil Jung. +82.10.6402-4639 http://humbroll.com Index: lib/webrick/httpstatus.rb =================================================================== --- lib/webrick/httpstatus.rb (revision 35666) +++ lib/webrick/httpstatus.rb (working copy) @@ -88,12 +88,16 @@ 415 => 'Unsupported Media Type', 416 => 'Request Range Not Satisfiable', 417 => 'Expectation Failed', + 428 => 'Precondition Required', + 429 => 'Too Many Requests', + 431 => 'Request Header Fields Too Large', 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported' + 505 => 'HTTP Version Not Supported', + 511 => 'Network Authentication Required' } # Maps a status code to the corresponding Status class Index: lib/net/http.rb =================================================================== --- lib/net/http.rb (revision 35666) +++ lib/net/http.rb (working copy) @@ -347,6 +347,9 @@ # HTTPUnsupportedMediaType:: 415 # HTTPRequestedRangeNotSatisfiable:: 416 # HTTPExpectationFailed:: 417 + # HTTPPreconditionRequired:: 428 + # HTTPTooManyRequests:: 429 + # HTTPRequestHeaderFieldsTooLarge:: 431 # HTTPServerError:: 5xx # HTTPInternalServerError:: 500 # HTTPNotImplemented:: 501 @@ -354,6 +357,7 @@ # HTTPServiceUnavailable:: 503 # HTTPGatewayTimeOut:: 504 # HTTPVersionNotSupported:: 505 + # HTTPNetworkAuthenticationRequired:: 511 # # There is also the Net::HTTPBadResponse exception which is raised when # there is a protocol error. @@ -2387,6 +2391,9 @@ # 415 HTTPUnsupportedMediaType # 416 HTTPRequestedRangeNotSatisfiable # 417 HTTPExpectationFailed + # 428 HTTPPreconditionRequired + # 429 HTTPTooManyRequests + # 431 HTTPRequestHeaderFieldsTooLarge # # 5xx HTTPServerError # 500 HTTPInternalServerError @@ -2395,6 +2402,7 @@ # 503 HTTPServiceUnavailable # 504 HTTPGatewayTimeOut # 505 HTTPVersionNotSupported + # 511 HTTPNetworkAuthenticationRequired # # xxx HTTPUnknownResponse # @@ -2544,25 +2552,37 @@ class HTTPExpectationFailed < HTTPClientError # 417 HAS_BODY = true end + class HTTPPreconditionRequired < HTTPClientError # 428 + HAS_BODY = true + end + class HTTPTooManyRequests < HTTPClientError # 429 + HAS_BODY = true + end + class HTTPRequestHeaderFieldsTooLarge < HTTPClientError # 431 + HAS_BODY = true + end - class HTTPInternalServerError < HTTPServerError # 500 + class HTTPInternalServerError < HTTPServerError # 500 HAS_BODY = true end - class HTTPNotImplemented < HTTPServerError # 501 + class HTTPNotImplemented < HTTPServerError # 501 HAS_BODY = true end - class HTTPBadGateway < HTTPServerError # 502 + class HTTPBadGateway < HTTPServerError # 502 HAS_BODY = true end - class HTTPServiceUnavailable < HTTPServerError # 503 + class HTTPServiceUnavailable < HTTPServerError # 503 HAS_BODY = true end - class HTTPGatewayTimeOut < HTTPServerError # 504 + class HTTPGatewayTimeOut < HTTPServerError # 504 HAS_BODY = true end - class HTTPVersionNotSupported < HTTPServerError # 505 + class HTTPVersionNotSupported < HTTPServerError # 505 HAS_BODY = true end + class HTTPNetworkAuthenticationRequired < HTTPServerError # 511 + HAS_BODY = true + end # :startdoc: @@ -2614,13 +2634,17 @@ '415' => HTTPUnsupportedMediaType, '416' => HTTPRequestedRangeNotSatisfiable, '417' => HTTPExpectationFailed, + '428' => HTTPPreconditionRequired, + '429' => HTTPTooManyRequests, + '431' => HTTPRequestHeaderFieldsTooLarge, '500' => HTTPInternalServerError, '501' => HTTPNotImplemented, '502' => HTTPBadGateway, '503' => HTTPServiceUnavailable, '504' => HTTPGatewayTimeOut, - '505' => HTTPVersionNotSupported + '505' => HTTPVersionNotSupported, + '511' => HTTPNetworkAuthenticationRequired } class << HTTPResponse -- ---------------------------------------- Sangil Jung. +82.10.6402-4639 http://humbroll.com -- http://bugs.ruby-lang.org/