williamr@2: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file httperr.h williamr@2: @warning : This file contains Rose Model ID comments - please do not delete williamr@2: */ williamr@2: williamr@2: #ifndef __HTTPERR_H__ williamr@2: #define __HTTPERR_H__ williamr@2: williamr@2: // System includes williamr@2: #include williamr@2: williamr@2: //##ModelId=3C4C18750141 williamr@2: class HTTPStatus williamr@2: /** williamr@2: The complete set of HTTP Status codes, as defined in RFC2616. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: enum williamr@2: { williamr@2: /** 'Informational' range of codes 1xx williamr@2: */ williamr@2: /** Continue. williamr@2: */ williamr@2: EContinue = 100, williamr@2: /** Switching Protocols. williamr@2: */ williamr@2: ESwitchingProtocols = 101, williamr@2: /** 'Successful' range of codes 2xx williamr@2: */ williamr@2: /** Ok. williamr@2: */ williamr@2: EOk = 200, williamr@2: /** Created. williamr@2: */ williamr@2: ECreated = 201, williamr@2: /** The entry has been accepted. williamr@2: */ williamr@2: EAccepted = 202, williamr@2: /** Non-Authoritative Information. williamr@2: */ williamr@2: ENonAuthoritativeInfo = 203, williamr@2: /** No Content. williamr@2: */ williamr@2: ENoContent = 204, williamr@2: /** Reset Content. williamr@2: */ williamr@2: EResetContent = 205, williamr@2: /** Partial Content. williamr@2: */ williamr@2: EPartialContent = 206, williamr@2: /** 'Redirection' range of codes 3xx williamr@2: */ williamr@2: /** Multiple Choices. williamr@2: */ williamr@2: EMultipleChoices = 300, williamr@2: /** Moved Permanently. williamr@2: */ williamr@2: EMovedPermanently = 301, williamr@2: /** Found. williamr@2: Note, this is deprecated in HTTP/1.1 - 307 will be used instead williamr@2: */ williamr@2: EFound = 302, williamr@2: /** See Other. williamr@2: */ williamr@2: ESeeOther = 303, williamr@2: /** Not Modified. williamr@2: */ williamr@2: ENotModified = 304, williamr@2: /** Use Proxy. williamr@2: */ williamr@2: EUseProxy = 305, williamr@2: /** Unused. williamr@2: */ williamr@2: EUnused = 306, williamr@2: /** Temporary Redirect. williamr@2: */ williamr@2: ETemporaryRedirect = 307, williamr@2: /** 'Client Error' range of codes 4xx williamr@2: */ williamr@2: /** Bad Request. williamr@2: */ williamr@2: EBadRequest = 400, williamr@2: /** Unauthorized. williamr@2: */ williamr@2: EUnauthorized = 401, williamr@2: /** Payment Required. Note, this is reserved in HTTP/1.1 williamr@2: */ williamr@2: EPaymentRequired = 402, williamr@2: /** Forbidden. williamr@2: */ williamr@2: EForbidden = 403, williamr@2: /** Not Found. williamr@2: */ williamr@2: ENotFound = 404, williamr@2: /** Method Not Allowed. williamr@2: */ williamr@2: EMethodNotAllowed = 405, williamr@2: /** Not Acceptable. williamr@2: */ williamr@2: ENotAcceptable = 406, williamr@2: /** Proxy Authentication Required. williamr@2: */ williamr@2: EProxyAuthenticationRequired = 407, williamr@2: /** Request Timeout. williamr@2: */ williamr@2: ERequestTimeout = 408, williamr@2: /** Conflict. williamr@2: */ williamr@2: EConflict = 409, williamr@2: /** Gone. williamr@2: */ williamr@2: EGone = 410, williamr@2: /** Length Required. williamr@2: */ williamr@2: ELengthRequired = 411, williamr@2: /** Precondition Failed. williamr@2: */ williamr@2: EPreconditionFailed = 412, williamr@2: /** Request Entity Too Large. williamr@2: */ williamr@2: ERequestEntityTooLarge = 413, williamr@2: /** Request-URI Too Long. williamr@2: */ williamr@2: ERequestURITooLong = 414, williamr@2: /** Unsupported Media Type. williamr@2: */ williamr@2: EUnsupportedMediaType = 415, williamr@2: /** Requested Range Not Satisfiable. williamr@2: */ williamr@2: ERequestedRangeNotSatisfiable = 416, williamr@2: /** Expectation Failed. williamr@2: */ williamr@2: EExpectationFailed = 417, williamr@2: /** 'Server Error' range of codes 5xx williamr@2: */ williamr@2: /** Internal Server Error. williamr@2: */ williamr@2: EInternalServerError = 500, williamr@2: /** Not Implemented. williamr@2: */ williamr@2: ENotImplemented = 501, williamr@2: /** Bad Gateway. williamr@2: */ williamr@2: EBadGateway = 502, williamr@2: /** Service Unavailable. williamr@2: */ williamr@2: EServiceUnavailable = 503, williamr@2: /** Gateway Timeout. williamr@2: */ williamr@2: EGatewayTimeout = 504, williamr@2: /** HTTP Version Not Supported. williamr@2: */ williamr@2: EHTTPVersionNotSupported = 505 williamr@2: }; williamr@2: williamr@2: /** Is the supplied status code in the 1xx Informational range? williamr@2: @param aStatus Is the supplied status code in the 1xx Informational range? williamr@2: @return ETrue if the specified status code is in the 1xx Informational range. williamr@2: ##ModelId=3C4C18750162 williamr@2: */ williamr@2: inline static TBool IsInformational(TInt aStatus); williamr@2: williamr@2: williamr@2: /** Is the supplied status code in the 2xx Successful range? williamr@2: @param aStatus Is the supplied status code in the 2xx Successful range? williamr@2: @return ETrue if the specified status code is in the 2xx Successful range williamr@2: ##ModelId=3C4C18750160 williamr@2: */ williamr@2: inline static TBool IsSuccessful(TInt aStatus); williamr@2: williamr@2: /** Is the supplied status code in the 3xx Redirection range? williamr@2: @param aStatus Is the supplied status code in the 3xx Redirection range? williamr@2: @return ETrue if the specified status code is in the 3xx Redirection range. williamr@2: ##ModelId=3C4C18750159 williamr@2: */ williamr@2: inline static TBool IsRedirection(TInt aStatus); williamr@2: williamr@2: /** Is the supplied status code in the 4xx Client Error range? williamr@2: @param aStatus Is the supplied status code in the 4xx Client Error range? williamr@2: @return ETrue if the specified status code is in the 4xx Client Error range. williamr@2: ##ModelId=3C4C18750157 williamr@2: */ williamr@2: inline static TBool IsClientError(TInt aStatus); williamr@2: williamr@2: /** Is the supplied status code in the 5xx Server Error range? williamr@2: @param aStatus Is the supplied status code in the 5xx Server Error range? williamr@2: @return ETrue if the specified status code is in the 5xx Server Error range. williamr@2: ##ModelId=3C4C18750155 williamr@2: */ williamr@2: inline static TBool IsServerError(TInt aStatus); williamr@2: }; williamr@2: williamr@2: // williamr@2: // HTTP Panic codes williamr@2: // williamr@2: williamr@2: #include williamr@2: williamr@2: // HTTPPanic::Panic(HTTPPanic:: ) williamr@2: williamr@2: //##ModelId=3C4C18740352 williamr@2: class HTTPPanic williamr@2: /** williamr@2: HTTP panic codes williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: enum THTTPPanic williamr@2: { williamr@2: /** RHTTPSession session is already open. ( Panic HTTP-CORE 0 ) williamr@2: */ williamr@2: ESessionAlreadyOpen, williamr@2: /** Specified field is missing. ( Panic HTTP-CORE 1 ) williamr@2: */ williamr@2: EHeaderFieldMissing, williamr@2: /** Unused. ( Panic HTTP-CORE 2 ) williamr@2: */ williamr@2: EHeaderParamMissing, williamr@2: /** Unused. ( Panic HTTP-CORE 2 ) williamr@2: */ williamr@2: EHeaderInvalidPart, williamr@2: /** Mismatch between header's type and its attempted use. ( Panic HTTP-CORE 4 ) williamr@2: */ williamr@2: EHeaderInvalidType, williamr@2: /** Unused. ( Panic HTTP-CORE 5 ) williamr@2: */ williamr@2: ETransactionEventOutstanding, williamr@2: /** A transaction error occurred, and the MHFRunError() in use didn't handle it. ( Panic HTTP-CORE 6 ) williamr@2: */ williamr@2: ETransactionUnhandledError, williamr@2: /** Attempted to add a filter while there is a transaction outstanding. ( Panic HTTP-CORE 6 ) williamr@2: */ williamr@2: EAddingFilterWithOutstandingTransactions, williamr@2: /** Attempted to add a filter at a position not between the protocol handler and the client. ( Panic HTTP-CORE 8 ) williamr@2: */ williamr@2: EFilterInvalidPosition, williamr@2: /** CHTTPEncoder object destroyed without its data being released. ( Panic HTTP-CORE 9 ) williamr@2: */ williamr@2: EHTTPFormDataUnreleased, williamr@2: /** CHTTPEncoder object at the wrong state for adding data. ( Panic HTTP-CORE 10 ) williamr@2: */ williamr@2: EHTTPFormSupplyingData, williamr@2: /** Unused. ( Panic HTTP-CORE 11 ) williamr@2: */ williamr@2: EValidationFilterFailure, williamr@2: /** Invalid request data. ( Panic HTTP-CORE 12 ) williamr@2: */ williamr@2: EInvalidTxData, williamr@2: /** Invalid response data. ( Panic HTTP-CORE 13 ) williamr@2: */ williamr@2: EInvalidRxData, williamr@2: /** Unused. ( Panic HTTP-CORE 14 ) williamr@2: */ williamr@2: ENoTransportHandlerSet, williamr@2: /** Unused. ( Panic HTTP-CORE 15 ) williamr@2: */ williamr@2: EAuthenticationFilterBadState, williamr@2: /** An invalid filter handle was specified. ( Panic HTTP-CORE 16 ) williamr@2: */ williamr@2: EInvalidFilterHandle williamr@2: }; williamr@2: williamr@2: //##ModelId=3C4C18740366 williamr@2: static void Panic(THTTPPanic aPanic); williamr@2: }; williamr@2: williamr@2: // HTTP external errors/leave codes. Add new sub-ranges at the end; do not insert between the sub-ranges that williamr@2: // are already here. This is to allow a client to reasonably check for errors between two adjacent range williamr@2: // base values rather than check for individual codes. williamr@2: williamr@2: /** williamr@2: Base value for the HTTP error code range (-7200 to -7399) williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KHttpErrorBase = -7200; williamr@2: williamr@2: // williamr@2: // Text mode HTTP protocol handler williamr@2: // williamr@2: williamr@2: /** williamr@2: Codec encoding errors for HTTP headers williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KHttpHeaderEncodeErrorBase = KHttpErrorBase; williamr@2: williamr@2: /** williamr@2: Error making a default encoding of unrecognised headers williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDefault = KHttpHeaderEncodeErrorBase; williamr@2: /** williamr@2: Error encoding the Accept field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeAccept = KHttpHeaderEncodeErrorBase - 1; williamr@2: /** williamr@2: Error encoding the Accept-Charset field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeAcceptCharset = KHttpHeaderEncodeErrorBase - 2; williamr@2: /** williamr@2: Error encoding a q-value parameter williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeQValue = KHttpHeaderEncodeErrorBase - 3; williamr@2: /** williamr@2: Error encoding the Authorization field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeAuthorization = KHttpHeaderEncodeErrorBase - 4; williamr@2: /** williamr@2: Error encoding Basic credentials williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeBasicAuth = KHttpHeaderEncodeErrorBase - 5; williamr@2: /** williamr@2: Error encoding Digest credentials williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDigestAuth = KHttpHeaderEncodeErrorBase - 6; williamr@2: /** williamr@2: Error encoding the Connection field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeConnection = KHttpHeaderEncodeErrorBase - 7; williamr@2: /** williamr@2: Error encoding the Content-Length field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeContentLength = KHttpHeaderEncodeErrorBase - 8; williamr@2: /** williamr@2: Error encoding the Content-Type field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeContentType = KHttpHeaderEncodeErrorBase - 9; williamr@2: /** williamr@2: Error encoding the Host field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeHost = KHttpHeaderEncodeErrorBase - 10; williamr@2: /** williamr@2: Error encoding the Host field's port parameter williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeHostPort = KHttpHeaderEncodeErrorBase - 11; williamr@2: /** williamr@2: Error encoding the Transfer-Encoding field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeTransferEncoding = KHttpHeaderEncodeErrorBase - 12; williamr@2: /** williamr@2: Error encoding the User-Agent field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeUserAgent = KHttpHeaderEncodeErrorBase - 13; williamr@2: /** williamr@2: Error encoding the Date field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDate = KHttpHeaderEncodeErrorBase - 14; williamr@2: /** williamr@2: Error encoding the Cookie field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeCookie = KHttpHeaderEncodeErrorBase - 15; williamr@2: /** williamr@2: Error encoding the Cache-Control field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeCacheControl = KHttpHeaderEncodeErrorBase - 16; williamr@2: /** williamr@2: Error encoding the Pragma field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodePragma = KHttpHeaderEncodeErrorBase - 17; williamr@2: /** williamr@2: Error encoding the if match field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeIfMatch = KHttpHeaderEncodeErrorBase - 18; williamr@2: /** williamr@2: Error encoding the if none match field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeIfNoneMatch = KHttpHeaderEncodeErrorBase - 19; williamr@2: /** williamr@2: Error encoding the if modified since field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeIfModifiedSince = KHttpHeaderEncodeErrorBase - 20; williamr@2: /** williamr@2: Error encoding the if unmodified since field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeIfUnmodifiedSince = KHttpHeaderEncodeErrorBase - 21; williamr@2: /** williamr@2: Error encoding the Cookie2 field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeCookie2 = KHttpHeaderEncodeErrorBase - 22; williamr@2: /** williamr@2: Error encoding the Content-Language field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeContentLanguage = KHttpHeaderEncodeErrorBase - 23; williamr@2: /** williamr@2: Error encoding the WWWAuthenticate field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDoWWWAuthenticate = KHttpHeaderEncodeErrorBase - 24; williamr@2: /** williamr@2: Error encoding the Age field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDoAge = KHttpHeaderEncodeErrorBase - 25; williamr@2: /** williamr@2: Error encoding the Vary field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDoVary = KHttpHeaderEncodeErrorBase - 26; williamr@2: /** williamr@2: Error encoding the Content-Language field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeDoContentLanguage = KHttpHeaderEncodeErrorBase - 27; williamr@2: /** williamr@2: Error encoding the Content-Encoding field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeContentEncoding = KHttpHeaderEncodeErrorBase - 28; williamr@2: /** williamr@2: Error encoding the Content-Location field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeContentLocation = KHttpHeaderEncodeErrorBase - 29; williamr@2: /** williamr@2: Error encoding the Content-MD5 field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeContentMD5 = KHttpHeaderEncodeErrorBase - 30; williamr@2: /** williamr@2: Error encoding the Accept-Encoding field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeAcceptLanguage = KHttpHeaderEncodeErrorBase - 31; williamr@2: /** williamr@2: Error encoding the Accept-Language field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeAcceptEncoding = KHttpHeaderEncodeErrorBase - 32; williamr@2: /** williamr@2: Error encoding the TE field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeTE = KHttpHeaderEncodeErrorBase - 33; williamr@2: /** williamr@2: Error encoding the Upgrade field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpEncodeUpgrade = KHttpHeaderEncodeErrorBase - 34; williamr@2: williamr@2: /** williamr@2: Codec decoding errors for values found in HTTP headers williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KHttpValueDecodeErrorBase = KHttpErrorBase - 60; williamr@2: williamr@2: /** williamr@2: General formatting error for date values williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedDate = KHttpValueDecodeErrorBase; williamr@2: /** williamr@2: Malformed year williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedYear = KHttpValueDecodeErrorBase - 1; williamr@2: /** williamr@2: Malformed short month name williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedMonth = KHttpValueDecodeErrorBase - 2; williamr@2: /** williamr@2: Malformed number of day in month williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedDay = KHttpValueDecodeErrorBase - 3; williamr@2: /** williamr@2: Malformed short day name williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedWkDay = KHttpValueDecodeErrorBase - 4; williamr@2: /** williamr@2: Malformed long day name williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedWeekDay = KHttpValueDecodeErrorBase - 5; williamr@2: /** williamr@2: Malformed integer value williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedInteger = KHttpValueDecodeErrorBase - 6; williamr@2: /** williamr@2: Malformed quoted string williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeMalformedQuotedStr = KHttpValueDecodeErrorBase - 7; williamr@2: williamr@2: /** williamr@2: Codec decoding errors for HTTP headers williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KHttpHeaderDecodeErrorBase = KHttpErrorBase - 70; williamr@2: williamr@2: /** williamr@2: Error decoding the Accept field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeAccept = KHttpHeaderDecodeErrorBase; williamr@2: /** williamr@2: Error decoding the Connection field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeConnection = KHttpHeaderDecodeErrorBase - 1; williamr@2: /** williamr@2: Error decoding the Content-Length field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeContentLength = KHttpHeaderDecodeErrorBase - 2; williamr@2: /** williamr@2: Error decoding the Content-Type field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeContentType = KHttpHeaderDecodeErrorBase - 3; williamr@2: /** williamr@2: Error decoding the Transfer-Encoding field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeTransferEncoding = KHttpHeaderDecodeErrorBase - 4; williamr@2: /** williamr@2: Error decoding the WWWAuthenticate field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeWWWAuthenticate = KHttpHeaderDecodeErrorBase - 5; williamr@2: /** williamr@2: The WWWAuthenticate field contained an unrecognised authentication scheme williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeUnknownAuthScheme = KHttpHeaderDecodeErrorBase - 6; williamr@2: /** williamr@2: Error decoding a Basic WWWAuthenticate challenge williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeBasicAuth = KHttpHeaderDecodeErrorBase - 7; williamr@2: /** williamr@2: Error decoding a Digest WWWAuthenticate challenge williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeDigestAuth = KHttpHeaderDecodeErrorBase - 8; williamr@2: /** williamr@2: Error decoding a Set-Cookie field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeCookie = KHttpHeaderDecodeErrorBase - 9; williamr@2: /** williamr@2: Error decoding the Authorization field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeAuthorization = KHttpHeaderDecodeErrorBase - 10; williamr@2: /** williamr@2: Error decoding the Accept-Charset field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeAcceptCharset = KHttpHeaderDecodeErrorBase - 11; williamr@2: /** williamr@2: Error decoding the Accept-Language field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeAcceptLanguage = KHttpHeaderDecodeErrorBase - 12; williamr@2: /** williamr@2: Error decoding the Accept-Encoding field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeAcceptEncoding = KHttpHeaderDecodeErrorBase - 13; williamr@2: /** williamr@2: Error decoding the TE field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeTE = KHttpHeaderEncodeErrorBase - 14; williamr@2: /** williamr@2: Error decoding the Expect field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeExpect = KHttpHeaderEncodeErrorBase - 15; williamr@2: /** williamr@2: Error decoding the Content-Disposition field williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpDecodeContentDisposition = KHttpHeaderDecodeErrorBase - 14; williamr@2: /** williamr@2: Response errors. These represent specific failure cases williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpResponseFailureBase = KHttpErrorBase - 100; williamr@2: williamr@2: /** williamr@2: A uri redirected too many times, possibly indicating a circular redirection williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpRedirectExceededLimit = KErrHttpResponseFailureBase; williamr@2: /** williamr@2: A server responded that the uri must be fetched via a proxy williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpRedirectUseProxy = KErrHttpResponseFailureBase - 1; williamr@2: /** williamr@2: A server sent a redirection response that did not include a Location header williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpRedirectNoLocationField = KErrHttpResponseFailureBase - 2; williamr@2: /** williamr@2: An error occured in parsing which left the parser in a unknown state williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpUnknownParseState = KErrHttpResponseFailureBase - 3; williamr@2: williamr@2: /** williamr@2: Request building errors: cause the Validation Filter to make a transaction fail and terminate williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpReqBuildErrorBase = KHttpErrorBase - 130; williamr@2: williamr@2: /** williamr@2: A body is provided with a method that doesn't allow bodys to be transmitted williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpRequestHasBody = KErrHttpReqBuildErrorBase; williamr@2: /** williamr@2: A body is missing from a method that requires it williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpRequestBodyMissing = KErrHttpReqBuildErrorBase - 1; williamr@2: /** williamr@2: Should contain The Max-Forward header williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpTraceReqWithoutMaxForwardHeader = KErrHttpReqBuildErrorBase - 2; williamr@2: /** williamr@2: Body must NOT be sent chunked if using HTTP/1.0 williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpPostReqBodyWithoutSizeOnHTTP10 = KErrHttpReqBuildErrorBase - 3; williamr@2: /** williamr@2: Request contained a response header or a entity header but no body williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpInvalidHeaderInRequest = KErrHttpReqBuildErrorBase - 4; williamr@2: /** williamr@2: Missing but required header errors williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: const TInt KErrHttpMissingHeaderBase = KHttpErrorBase - 160; williamr@2: /** williamr@2: A body was provided in the request but no Content-Type header was set williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: const TInt KErrHttpEntityHeaderMissingContentType = KErrHttpMissingHeaderBase; williamr@2: /** williamr@2: The request URI was relative, but no Host header was set to indicate a server to connect to williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpGeneralHeaderMissingHost = KErrHttpMissingHeaderBase - 1; williamr@2: /** williamr@2: Protocol handler errors williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpProtocolHandlerBase = KHttpErrorBase - 170; williamr@2: /** williamr@2: The request body needed to be rewound but the client but it doesn't support williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpCantResetRequestBody = KErrHttpProtocolHandlerBase; williamr@2: /** williamr@2: The Protocol handler is not initialised williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpProtTransactionNotInitialised = KErrHttpProtocolHandlerBase -1; williamr@2: /** williamr@2: Unable to establish a tunnel. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpCannotEstablishTunnel = KErrHttpProtocolHandlerBase -2; williamr@2: /** williamr@2: Invalid URI williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpInvalidUri = KErrHttpProtocolHandlerBase -3; williamr@2: /** williamr@2: Protocol handler experienced a non-pipelining error williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpNonPipeliningError = KErrHttpProtocolHandlerBase -4; williamr@2: /** williamr@2: Protocol handler experienced a pipelining error williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpPipeliningError = KErrHttpProtocolHandlerBase -5; williamr@2: williamr@2: /** williamr@2: The request has been not sent for the transaction and connection has been disconnected. williamr@2: This error will be propagated to the client only, if the HTTP:ENotifyOnDisconnect property williamr@2: is set with a value HTTP::EEnableDisconnectNotification williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpRequestNotSent = KErrHttpProtocolHandlerBase -6; williamr@2: williamr@2: /** williamr@2: The response has been not received for the transaction and connection has been disconnected. williamr@2: This error will be propagated to the client only, if the HTTP:ENotifyOnDisconnect property is williamr@2: set with a value HTTP::EEnableDisconnectNotification williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpResponseNotReceived = KErrHttpProtocolHandlerBase -7; williamr@2: williamr@2: /** williamr@2: Partial response has been received and connection has been disconnected. This error will be williamr@2: propagated to the client only, if the HTTP:ENotifyOnDisconnect property is set with a value williamr@2: HTTP::EEnableDisconnectNotification williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpPartialResponseReceived = KErrHttpProtocolHandlerBase -8; williamr@2: williamr@2: /** williamr@2: ClientApplication wants to fail the transaction that was in process by the HTTPMessageParser williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: const TInt KErrHttpOptimiserFailsTrans = KErrHttpProtocolHandlerBase -9; williamr@2: williamr@2: // end of error codes - maximum error value is -7399 - must not be exceeded! williamr@2: // Inline methods from HTTPStatus williamr@2: williamr@2: inline TBool HTTPStatus::IsInformational(TInt aStatus) williamr@2: { williamr@2: return ((aStatus >= HTTPStatus::EContinue) && (aStatus < HTTPStatus::EOk)); williamr@2: } williamr@2: inline TBool HTTPStatus::IsSuccessful(TInt aStatus) williamr@2: { williamr@2: return ((aStatus >= HTTPStatus::EOk) && (aStatus < HTTPStatus::EMultipleChoices)); williamr@2: } williamr@2: inline TBool HTTPStatus::IsRedirection(TInt aStatus) williamr@2: { williamr@2: return ((aStatus >= HTTPStatus::EMultipleChoices) && (aStatus < HTTPStatus::EBadRequest)); williamr@2: } williamr@2: inline TBool HTTPStatus::IsClientError(TInt aStatus) williamr@2: { williamr@2: return ((aStatus >= HTTPStatus::EBadRequest) && (aStatus < HTTPStatus::EInternalServerError)); williamr@2: } williamr@2: inline TBool HTTPStatus::IsServerError(TInt aStatus) williamr@2: { williamr@2: return (aStatus >= HTTPStatus::EInternalServerError); williamr@2: } williamr@2: williamr@2: williamr@2: williamr@2: #endif // __HTTPERR_H__