* Copyright (c) 2023 Huawei Device Co., Ltd.
* 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 http_ios_constant_h
#define http_ios_constant_h
#import <Foundation/Foundation.h>
typedef enum {
IOS_OK = 0,
IOS_UNSUPPORTED_PROTOCOL,
IOS_FAILED_INIT,
IOS_URL_MALFORMAT,
IOS_NOT_BUILT_IN,
7.17.0, reused in April 2011 for 7.21.5] */
IOS_COULDNT_RESOLVE_PROXY,
IOS_COULDNT_RESOLVE_HOST,
IOS_COULDNT_CONNECT,
IOS_WEIRD_SERVER_REPLY,
IOS_REMOTE_ACCESS_DENIED,
due to lack of access - when login fails
this is not returned. */
IOS_FTP_ACCEPT_FAILED,
7.15.4, reused in Dec 2011 for 7.24.0] */
IOS_FTP_WEIRD_PASS_REPLY,
IOS_FTP_ACCEPT_TIMEOUT,
[was obsoleted in August 2007 for 7.17.0,
reused in Dec 2011 for 7.24.0] */
IOS_FTP_WEIRD_PASV_REPLY,
IOS_FTP_WEIRD_227_FORMAT,
IOS_FTP_CANT_GET_HOST,
IOS_HTTP2,
[was obsoleted in August 2007 for 7.17.0,
reused in July 2014 for 7.38.0] */
IOS_FTP_COULDNT_SET_TYPE,
IOS_PARTIAL_FILE,
IOS_FTP_COULDNT_RETR_FILE,
IOS_OBSOLETE20,
IOS_QUOTE_ERROR,
IOS_HTTP_RETURNED_ERROR,
IOS_WRITE_ERROR,
IOS_OBSOLETE24,
IOS_UPLOAD_FAILED,
IOS_READ_ERROR,
IOS_OUT_OF_MEMORY,
IOS_OPERATION_TIMEDOUT,
IOS_OBSOLETE29,
IOS_FTP_PORT_FAILED,
IOS_FTP_COULDNT_USE_REST,
IOS_OBSOLETE32,
IOS_RANGE_ERROR,
IOS_HTTP_POST_ERROR,
IOS_SSL_CONNECT_ERROR,
IOS_BAD_DOWNLOAD_RESUME,
IOS_FILE_COULDNT_READ_FILE,
IOS_LDAP_CANNOT_BIND,
IOS_LDAP_SEARCH_FAILED,
IOS_OBSOLETE40,
IOS_FUNCTION_NOT_FOUND,
IOS_ABORTED_BY_CALLBACK,
IOS_BAD_FUNCTION_ARGUMENT,
IOS_OBSOLETE44,
IOS_INTERFACE_FAILED,
IOS_OBSOLETE46,
IOS_TOO_MANY_REDIRECTS,
IOS_UNKNOWN_OPTION,
IOS_SETOPT_OPTION_SYNTAX,
IOS_OBSOLETE50,
IOS_OBSOLETE51,
IOS_GOT_NOTHING,
IOS_SSL_ENGINE_NOTFOUND,
IOS_SSL_ENGINE_SETFAILED,
IOS_SEND_ERROR,
IOS_RECV_ERROR,
IOS_OBSOLETE57,
IOS_SSL_CERTPROBLEM,
IOS_SSL_CIPHER,
IOS_PEER_FAILED_VERIFICATION,
IOS_SSL_CACERT = IOS_PEER_FAILED_VERIFICATION,
IOS_BAD_CONTENT_ENCODING,
IOS_OBSOLETE62,
IOS_FILESIZE_EXCEEDED,
IOS_USE_SSL_FAILED,
IOS_SEND_FAIL_REWIND,
IOS_SSL_ENGINE_INITFAILED,
IOS_LOGIN_DENIED,
IOS_TFTP_NOTFOUND,
IOS_TFTP_PERM,
IOS_REMOTE_DISK_FULL,
IOS_TFTP_ILLEGAL,
IOS_TFTP_UNKNOWNID,
IOS_REMOTE_FILE_EXISTS,
IOS_TFTP_NOSUCHUSER,
IOS_OBSOLETE75,
IOS_OBSOLETE76,
IOS_SSL_CACERT_BADFILE,
IOS_REMOTE_FILE_NOT_FOUND,
IOS_SSH,
generic so the error message will be of
interest when this has happened */
IOS_SSL_SHUTDOWN_FAILED,
IOS_AGAIN,
wait till it's ready and try again (Added in 7.18.2) */
IOS_SSL_CRL_BADFILE,
IOS_SSL_ISSUER_ERROR,
IOS_FTP_PRET_FAILED,
IOS_RTSP_CSEQ_ERROR,
IOS_RTSP_SESSION_ERROR,
IOS_FTP_BAD_FILE_LIST,
IOS_CHUNK_FAILED,
IOS_NO_CONNECTION_AVAILABLE,
IOS_SSL_PINNEDPUBKEYNOTMATCH,
IOS_SSL_INVALIDCERTSTATUS,
IOS_HTTP2_STREAM,
IOS_RECURSIVE_API_CALL,
IOS_AUTH_ERROR,
IOS_HTTP3,
IOS_QUIC_CONNECT_ERROR,
IOS_PROXY,
IOS_SSL_CLIENTCERT,
IOS_UNRECOVERABLE_POLL,
IOS_LAST
} IOSErrorCode;
NSDictionary* ErrorCodeMap = @ {
@(NSURLErrorCancelled): @(IOS_WEIRD_SERVER_REPLY),
@(NSURLErrorBadURL): @(IOS_WEIRD_SERVER_REPLY),
@(NSURLErrorTimedOut): @(IOS_OPERATION_TIMEDOUT),
@(NSURLErrorUnsupportedURL): @(IOS_URL_MALFORMAT),
@(NSURLErrorCannotFindHost): @(IOS_COULDNT_RESOLVE_HOST),
@(NSURLErrorCannotConnectToHost): @(IOS_COULDNT_CONNECT),
@(NSURLErrorDataLengthExceedsMaximum): @(IOS_FILESIZE_EXCEEDED),
@(NSURLErrorNetworkConnectionLost): @(IOS_COULDNT_CONNECT),
@(NSURLErrorDNSLookupFailed): @(IOS_COULDNT_RESOLVE_HOST),
@(NSURLErrorHTTPTooManyRedirects): @(IOS_TOO_MANY_REDIRECTS),
@(NSURLErrorResourceUnavailable): @(IOS_GOT_NOTHING),
@(NSURLErrorNotConnectedToInternet): @(IOS_COULDNT_CONNECT),
@(NSURLErrorRedirectToNonExistentLocation): @(IOS_COULDNT_RESOLVE_HOST),
@(NSURLErrorBadServerResponse): @(IOS_WEIRD_SERVER_REPLY),
@(NSURLErrorUserCancelledAuthentication): @(IOS_AUTH_ERROR),
@(NSURLErrorUserAuthenticationRequired): @(IOS_REMOTE_ACCESS_DENIED),
@(NSURLErrorZeroByteResource): @(IOS_URL_MALFORMAT),
@(NSURLErrorCannotDecodeRawData): @(IOS_BAD_CONTENT_ENCODING),
@(NSURLErrorCannotDecodeContentData): @(IOS_BAD_CONTENT_ENCODING),
@(NSURLErrorCannotParseResponse): @(IOS_BAD_CONTENT_ENCODING),
@(NSURLErrorInternationalRoamingOff): @(IOS_UNRECOVERABLE_POLL),
@(NSURLErrorCallIsActive): @(IOS_COULDNT_CONNECT),
@(NSURLErrorDataNotAllowed): @(IOS_WEIRD_SERVER_REPLY),
@(NSURLErrorAppTransportSecurityRequiresSecureConnection): @(IOS_AUTH_ERROR),
@(NSURLErrorRequestBodyStreamExhausted): @(IOS_URL_MALFORMAT),
@(NSURLErrorFileDoesNotExist): @(IOS_REMOTE_FILE_NOT_FOUND),
@(NSURLErrorFileIsDirectory): @(IOS_REMOTE_FILE_NOT_FOUND),
@(NSURLErrorNoPermissionsToReadFile): @(IOS_READ_ERROR),
@(NSURLErrorSecureConnectionFailed): @(IOS_AUTH_ERROR),
@(NSURLErrorServerCertificateHasBadDate): @(IOS_AUTH_ERROR),
@(NSURLErrorServerCertificateUntrusted): @(IOS_PEER_FAILED_VERIFICATION),
@(NSURLErrorServerCertificateHasUnknownRoot): @(IOS_PEER_FAILED_VERIFICATION),
@(NSURLErrorServerCertificateNotYetValid): @(IOS_PEER_FAILED_VERIFICATION),
@(NSURLErrorClientCertificateRejected): @(IOS_PEER_FAILED_VERIFICATION),
@(NSURLErrorClientCertificateRequired): @(IOS_AUTH_ERROR),
@(NSURLErrorCannotLoadFromNetwork): @(IOS_WEIRD_SERVER_REPLY),
@(NSURLErrorCannotCreateFile): @(IOS_WRITE_ERROR),
@(NSURLErrorCannotOpenFile): @(IOS_READ_ERROR),
@(NSURLErrorCannotCloseFile): @(IOS_WRITE_ERROR),
@(NSURLErrorCannotWriteToFile): @(IOS_WRITE_ERROR),
@(NSURLErrorCannotMoveFile): @(IOS_WRITE_ERROR)
};
#endif