2016-01-16 13:39:48 +01:00

583 lines
13 KiB
C

/*
* Copyright (C) 2013 Neo Visionaries Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef HTTPStatusCodes_h
#define HTTPStatusCodes_h
//----------------------------------------------------------------------
// Typedef
//----------------------------------------------------------------------
/**
* HTTP status codes.
*
* The list here is based on the description at Wikipedia.
* The initial version of this list was written on April 20, 2013.
*
* @see <a href="http://en.wikipedia.org/wiki/List_of_HTTP_status_codes"
* >List of HTTP status codes</a>
*/
typedef enum
{
/*--------------------------------------------------
* 1xx Informational
*------------------------------------------------*/
/**
* 100 Continue.
*/
kHTTPStatusCodeContinue = 100,
/**
* 101 Switching Protocols.
*/
kHTTPStatusCodeSwitchingProtocols = 101,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_2518)
/**
* 103 Processing (WebDAV; RFC 2518).
*/
kHTTPStatusCodeProcessing = 102,
#endif
/*--------------------------------------------------
* 2xx Success
*------------------------------------------------*/
/**
* 200 OK.
*/
kHTTPStatusCodeOK = 200,
/**
* 201 Created.
*/
kHTTPStatusCodeCreated = 201,
/**
* 202 Accepted.
*/
kHTTPStatusCodeAccepted = 202,
/**
* 203 Non-Authoritative Information (since HTTP/1.1).
*/
kHTTPStatusCodeNonAuthoritativeInformation = 203,
/**
* 204 No Content.
*/
kHTTPStatusCodeNoContent = 204,
/**
* 205 Reset Content.
*/
kHTTPStatusCodeResetContent = 205,
/**
* 206 Partial Content.
*/
kHTTPStatusCodePartialContent = 206,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_4918)
/**
* 207 Multi-Status (WebDAV; RFC 4918).
*/
kHTTPStatusCodeMultiStatus = 207,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_5842)
/**
* 208 Already Reported (WebDAV; RFC 5842).
*/
kHTTPStatusCodeAlreadyReported = 208,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_3229)
/**
* 226 IM Used (RFC 3229)
*/
kHTTPStatusCodeIMUsed = 226,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_2326)
/**
* 250 Low on Storage Space (RTSP; RFC 2326).
*/
kHTTPStatusCodeLowOnStorageSpace = 250,
#endif
/*--------------------------------------------------
* 3xx Redirection
*------------------------------------------------*/
/**
* 300 Multiple Choices.
*/
kHTTPStatusCodeMultipleChoices = 300,
/**
* 301 Moved Permanently.
*/
kHTTPStatusCodeMovedPermanently = 301,
/**
* 302 Found.
*/
kHTTPStatusCodeFound = 302,
/**
* 303 See Other (since HTTP/1.1).
*/
kHTTPStatusCodeSeeOther = 303,
/**
* 304 Not Modified.
*/
kHTTPStatusCodeNotModified = 304,
/**
* 305 Use Proxy (since HTTP/1.1).
*/
kHTTPStatusCodeUseProxy = 305,
/**
* 306 Switch Proxy.
*/
kHTTPStatusCodeSwitchProxy = 306,
/**
* 307 Temporary Redirect (since HTTP/1.1).
*/
kHTTPStatusCodeTemporaryRedirect = 307,
/**
* 308 Permanent Redirect (approved as experimental RFC).
*/
kHTTPStatusCodePermanentRedirect = 308,
/*--------------------------------------------------
* 4xx Client Error
*------------------------------------------------*/
/**
* 400 Bad Request.
*/
kHTTPStatusCodeBadRequest = 400,
/**
* 401 Unauthorized.
*/
kHTTPStatusCodeUnauthorized = 401,
/**
* 402 Payment Required.
*/
kHTTPStatusCodePaymentRequired = 402,
/**
* 403 Forbidden.
*/
kHTTPStatusCodeForbidden = 403,
/**
* 404 Not Found.
*/
kHTTPStatusCodeNotFound = 404,
/**
* 405 Method Not Allowed.
*/
kHTTPStatusCodeMethodNotAllowed = 405,
/**
* 406 Not Acceptable.
*/
kHTTPStatusCodeNotAcceptable = 406,
/**
* 407 Proxy Authentication Required.
*/
kHTTPStatusCodeProxyAuthenticationRequired = 407,
/**
* 408 Request Timeout.
*/
kHTTPStatusCodeRequestTimeout = 408,
/**
* 409 Conflict.
*/
kHTTPStatusCodeConflict = 409,
/**
* 410 Gone.
*/
kHTTPStatusCodeGone = 410,
/**
* 411 Length Required.
*/
kHTTPStatusCodeLengthRequired = 411,
/**
* 412 Precondition Failed.
*/
kHTTPStatusCodePreconditionFailed = 412,
/**
* 413 Request Entity Too Large.
*/
kHTTPStatusCodeRequestEntityTooLarge = 413,
/**
* 414 Request-URI Too Long.
*/
kHTTPStatusCodeRequestURITooLong = 414,
/**
* 415 Unsupported Media Type.
*/
kHTTPStatusCodeUnsupportedMediaType = 415,
/**
* 416 Requested Range Not Satisfiable.
*/
kHTTPStatusCodeRequestedRangeNotSatisfiable = 416,
/**
* 417 Expectation Failed.
*/
kHTTPStatusCodeExpectationFailed = 417,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_2324)
/**
* 418 I'm a teapot (RFC 2324).
*/
kHTTPStatusCodeImATeapot = 418,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_TWITTER)
/**
* 420 Enhance Your Calm (Twitter).
*/
kHTTPStatusCodeEnhanceYourCalm = 420,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_4918)
/**
* 422 Unprocessable Entity (WebDAV; RFC 4918).
*/
kHTTPStatusCodeUnprocessableEntity = 422,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_4918)
/**
* 423 Locked (WebDAV; RFC 4918).
*/
kHTTPStatusCodeLocked = 423,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_4918)
/**
* 424 Failed Dependency (WebDAV; RFC 4918).
*/
kHTTPStatusCodeFailedDependency = 424,
#endif
/**
* 425 Unordered Collection (Internet draft).
*/
kHTTPStatusCodeUnorderedCollection = 425,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_2817)
/**
* 426 Upgrade Required (RFC 2817).
*/
kHTTPStatusCodeUpgradeRequired = 426,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_6585)
/**
* 428 Precondition Required (RFC 6585).
*/
kHTTPStatusCodePreconditionRequired = 428,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_6585)
/**
* 429 Too Many Requests (RFC 6585).
*/
kHTTPStatusCodeTooManyRequests = 429,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_6585)
/**
* 431 Request Header Fields Too Large (RFC 6585).
*/
kHTTPStatusCodeRequestHeaderFieldsTooLarge = 431,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_NGINX)
/**
* 444 No Response (Nginx).
*/
kHTTPStatusCodeNoResponse = 444,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_MICROSOFT)
/**
* 449 Retry With (Microsoft).
*/
kHTTPStatusCodeRetryWith = 449,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_MICROSOFT)
/**
* 450 Blocked by Windows Parental Controls (Microsoft).
*/
kHTTPStatusCodeBlockedByWindowsParentalControls = 450,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 451 Parameter Not Understood (RTSP).
*/
kHTTPStatusCodeParameterNotUnderstood = 451,
#endif
/**
* 451 Unavailable For Legal Reasons (Internet draft).
*/
kHTTPStatusCodeUnavailableForLegalReasons = 451,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_MICROSOFT)
/**
* 451 Redirect (Microsoft).
*/
kHTTPStatusCodeRedirect = 451,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 452 Conference Not Found (RTSP).
*/
kHTTPStatusCodeConferenceNotFound = 452,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 453 Not Enough Bandwidth (RTSP).
*/
kHTTPStatusCodeNotEnoughBandwidth = 453,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 454 Session Not Found (RTSP).
*/
kHTTPStatusCodeSessionNotFound = 454,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 455 Method Not Valid in This State (RTSP).
*/
kHTTPStatusCodeMethodNotValidInThisState = 455,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 456 Header Field Not Valid for Resource (RTSP).
*/
kHTTPStatusCodeHeaderFieldNotValidForResource = 456,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 457 Invalid Range (RTSP).
*/
kHTTPStatusCodeInvalidRange = 457,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 458 Parameter Is Read-Only (RTSP).
*/
kHTTPStatusCodeParameterIsReadOnly = 458,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 459 Aggregate Operation Not Allowed (RTSP).
*/
kHTTPStatusCodeAggregateOperationNotAllowed = 459,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 460 Only Aggregate Operation Allowed (RTSP).
*/
kHTTPStatusCodeOnlyAggregateOperationAllowed = 460,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 461 Unsupported Transport (RTSP).
*/
kHTTPStatusCodeUnsupportedTransport = 461,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 462 Destination Unreachable (RTSP).
*/
kHTTPStatusCodeDestinationUnreachable = 462,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_NGINX)
/**
* 494 Request Header Too Large (Nginx).
*/
kHTTPStatusCodeRequestHeaderTooLarge = 494,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_NGINX)
/**
* 495 Cert Error (Nginx).
*/
kHTTPStatusCodeCertError = 495,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_NGINX)
/**
* 496 No Cert (Nginx).
*/
kHTTPStatusCodeNoCert = 496,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_NGINX)
/**
* 497 HTTP to HTTPS (Nginx).
*/
kHTTPStatusCodeHTTPToHTTPS = 497,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_NGINX)
/**
* 499 Client Closed Request (Nginx).
*/
kHTTPStatusCodeClientClosedRequest = 499,
#endif
/*--------------------------------------------------
* 5xx Server Error
*------------------------------------------------*/
/**
* 500 Internal Server Error.
*/
kHTTPStatusCodeInternalServerError = 500,
/**
* 501 Not Implemented
*/
kHTTPStatusCodeNotImplemented = 501,
/**
* 502 Bad Gateway.
*/
kHTTPStatusCodeBadGateway = 502,
/**
* 503 Service Unavailable.
*/
kHTTPStatusCodeServiceUnavailable = 503,
/**
* 504 Gateway Timeout.
*/
kHTTPStatusCodeGatewayTimeout = 504,
/**
* 505 HTTP Version Not Supported.
*/
kHTTPStatusCodeHTTPVersionNotSupported = 505,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_2295)
/**
* 506 Variant Also Negotiates (RFC 2295).
*/
kHTTPStatusCodeVariantAlsoNegotiates = 506,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_4918)
/**
* 507 Insufficient Storage (WebDAV; RFC 4918).
*/
kHTTPStatusCodeInsufficientStorage = 507,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_WEBDAV) && !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_5842)
/**
* 508 Loop Detected (WebDAV; RFC 5842).
*/
kHTTPStatusCodeLoopDetected = 508,
#endif
/**
* 509 Bandwidth Limit Exceeded (Apache bw/limited extension).
*/
kHTTPStatusCodeBandwidthLimitExceeded = 509,
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_2774)
/**
* 510 Not Extended (RFC 2774).
*/
kHTTPStatusCodeNotExtended = 510,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RFC_6585)
/**
* 511 Network Authentication Required (RFC 6585).
*/
kHTTPStatusCodeNetworkAuthenticationRequired = 511,
#endif
#if !defined(HTTP_STATUS_CODES_EXCLUDE_RTSP)
/**
* 551 Option not supported (RTSP).
*/
kHTTPStatusCodeOptionNotSupported = 551,
#endif
/**
* 598 Network read timeout error (Unknown).
*/
kHTTPStatusCodeNetworkReadTimeoutError = 598,
/**
* 599 Network connect timeout error (Unknown).
*/
kHTTPStatusCodeNetworkConnectTimeoutError = 599
}
HTTPStatusCode;
#endif