1 /* 2 +----------------------------------------------------------------------+ 3 | Swoole | 4 +----------------------------------------------------------------------+ 5 | This source file is subject to version 2.0 of the Apache license, | 6 | that is bundled with this package in the file LICENSE, and is | 7 | available through the world-wide-web at the following url: | 8 | http://www.apache.org/licenses/LICENSE-2.0.html | 9 | If you did not receive a copy of the Apache2.0 license and are unable| 10 | to obtain it through the world-wide-web, please send a note to | 11 | license@swoole.com so we can mail you a copy immediately. | 12 +----------------------------------------------------------------------+ 13 | Author: Tianfeng Han <mikan.tenny@gmail.com> | 14 +----------------------------------------------------------------------+ 15 */ 16 17 #pragma once 18 19 enum swErrorCode { 20 /** 21 * Prevent repetition with errno [syscall error] 22 */ 23 SW_ERROR_BEGIN = 500, 24 25 /** 26 * common error 27 */ 28 SW_ERROR_MALLOC_FAIL = 501, 29 SW_ERROR_SYSTEM_CALL_FAIL, 30 SW_ERROR_PHP_FATAL_ERROR, 31 SW_ERROR_NAME_TOO_LONG, 32 SW_ERROR_INVALID_PARAMS, 33 SW_ERROR_QUEUE_FULL, 34 SW_ERROR_OPERATION_NOT_SUPPORT, 35 SW_ERROR_PROTOCOL_ERROR, 36 SW_ERROR_WRONG_OPERATION, 37 38 SW_ERROR_FILE_NOT_EXIST = 700, 39 SW_ERROR_FILE_TOO_LARGE, 40 SW_ERROR_FILE_EMPTY, 41 42 SW_ERROR_DNSLOOKUP_DUPLICATE_REQUEST = 710, 43 SW_ERROR_DNSLOOKUP_RESOLVE_FAILED, 44 SW_ERROR_DNSLOOKUP_RESOLVE_TIMEOUT, 45 SW_ERROR_DNSLOOKUP_UNSUPPORTED, 46 SW_ERROR_DNSLOOKUP_NO_SERVER, 47 48 SW_ERROR_BAD_IPV6_ADDRESS = 720, 49 SW_ERROR_UNREGISTERED_SIGNAL, 50 51 // EventLoop 52 SW_ERROR_EVENT_SOCKET_REMOVED = 800, 53 54 /** 55 * connection error 56 */ 57 SW_ERROR_SESSION_CLOSED_BY_SERVER = 1001, 58 SW_ERROR_SESSION_CLOSED_BY_CLIENT, 59 SW_ERROR_SESSION_CLOSING, 60 SW_ERROR_SESSION_CLOSED, 61 SW_ERROR_SESSION_NOT_EXIST, 62 SW_ERROR_SESSION_INVALID_ID, 63 SW_ERROR_SESSION_DISCARD_TIMEOUT_DATA, 64 SW_ERROR_SESSION_DISCARD_DATA, 65 SW_ERROR_OUTPUT_BUFFER_OVERFLOW, 66 SW_ERROR_OUTPUT_SEND_YIELD, 67 SW_ERROR_SSL_NOT_READY, 68 SW_ERROR_SSL_CANNOT_USE_SENFILE, 69 SW_ERROR_SSL_EMPTY_PEER_CERTIFICATE, 70 SW_ERROR_SSL_VERIFY_FAILED, 71 SW_ERROR_SSL_BAD_CLIENT, 72 SW_ERROR_SSL_BAD_PROTOCOL, 73 SW_ERROR_SSL_RESET, 74 SW_ERROR_SSL_HANDSHAKE_FAILED, 75 76 SW_ERROR_PACKAGE_LENGTH_TOO_LARGE = 1201, 77 SW_ERROR_PACKAGE_LENGTH_NOT_FOUND, 78 SW_ERROR_DATA_LENGTH_TOO_LARGE, 79 SW_ERROR_PACKAGE_MALFORMED_DATA, 80 81 /** 82 * task error 83 */ 84 SW_ERROR_TASK_PACKAGE_TOO_BIG = 2001, 85 SW_ERROR_TASK_DISPATCH_FAIL, 86 SW_ERROR_TASK_TIMEOUT, 87 88 /** 89 * http2 protocol error 90 */ 91 SW_ERROR_HTTP2_STREAM_ID_TOO_BIG = 3001, 92 SW_ERROR_HTTP2_STREAM_NO_HEADER, 93 SW_ERROR_HTTP2_STREAM_NOT_FOUND, 94 SW_ERROR_HTTP2_STREAM_IGNORE, 95 96 /** 97 * AIO 98 */ 99 SW_ERROR_AIO_BAD_REQUEST = 4001, 100 SW_ERROR_AIO_CANCELED, 101 SW_ERROR_AIO_TIMEOUT, 102 103 /** 104 * Client 105 */ 106 SW_ERROR_CLIENT_NO_CONNECTION = 5001, 107 108 /** 109 * Socket 110 */ 111 SW_ERROR_SOCKET_CLOSED = 6001, 112 SW_ERROR_SOCKET_POLL_TIMEOUT, 113 114 /** 115 * Proxy 116 */ 117 SW_ERROR_SOCKS5_UNSUPPORT_VERSION = 7001, 118 SW_ERROR_SOCKS5_UNSUPPORT_METHOD, 119 SW_ERROR_SOCKS5_AUTH_FAILED, 120 SW_ERROR_SOCKS5_SERVER_ERROR, 121 SW_ERROR_SOCKS5_HANDSHAKE_FAILED, 122 123 SW_ERROR_HTTP_PROXY_HANDSHAKE_ERROR = 7101, 124 SW_ERROR_HTTP_INVALID_PROTOCOL, 125 SW_ERROR_HTTP_PROXY_HANDSHAKE_FAILED, 126 SW_ERROR_HTTP_PROXY_BAD_RESPONSE, 127 128 SW_ERROR_WEBSOCKET_BAD_CLIENT = 8501, 129 SW_ERROR_WEBSOCKET_BAD_OPCODE, 130 SW_ERROR_WEBSOCKET_UNCONNECTED, 131 SW_ERROR_WEBSOCKET_HANDSHAKE_FAILED, 132 SW_ERROR_WEBSOCKET_PACK_FAILED, 133 SW_ERROR_WEBSOCKET_UNPACK_FAILED, 134 SW_ERROR_WEBSOCKET_INCOMPLETE_PACKET, 135 136 /** 137 * server global error 138 */ 139 SW_ERROR_SERVER_MUST_CREATED_BEFORE_CLIENT = 9001, 140 SW_ERROR_SERVER_TOO_MANY_SOCKET, 141 SW_ERROR_SERVER_WORKER_TERMINATED, 142 SW_ERROR_SERVER_INVALID_LISTEN_PORT, 143 SW_ERROR_SERVER_TOO_MANY_LISTEN_PORT, 144 SW_ERROR_SERVER_PIPE_BUFFER_FULL, 145 SW_ERROR_SERVER_NO_IDLE_WORKER, 146 SW_ERROR_SERVER_ONLY_START_ONE, 147 SW_ERROR_SERVER_SEND_IN_MASTER, 148 SW_ERROR_SERVER_INVALID_REQUEST, 149 SW_ERROR_SERVER_CONNECT_FAIL, 150 SW_ERROR_SERVER_INVALID_COMMAND, 151 152 /** 153 * Process exit timeout, forced to end. 154 */ 155 SW_ERROR_SERVER_WORKER_EXIT_TIMEOUT = 9101, 156 SW_ERROR_SERVER_WORKER_ABNORMAL_PIPE_DATA, 157 SW_ERROR_SERVER_WORKER_UNPROCESSED_DATA, 158 159 /** 160 * Coroutine 161 */ 162 SW_ERROR_CO_OUT_OF_COROUTINE = 10001, 163 SW_ERROR_CO_HAS_BEEN_BOUND, 164 SW_ERROR_CO_HAS_BEEN_DISCARDED, 165 166 SW_ERROR_CO_MUTEX_DOUBLE_UNLOCK, 167 SW_ERROR_CO_BLOCK_OBJECT_LOCKED, 168 SW_ERROR_CO_BLOCK_OBJECT_WAITING, 169 SW_ERROR_CO_YIELD_FAILED, 170 SW_ERROR_CO_GETCONTEXT_FAILED, 171 SW_ERROR_CO_SWAPCONTEXT_FAILED, 172 SW_ERROR_CO_MAKECONTEXT_FAILED, 173 174 SW_ERROR_CO_IOCPINIT_FAILED, 175 SW_ERROR_CO_PROTECT_STACK_FAILED, 176 SW_ERROR_CO_STD_THREAD_LINK_ERROR, 177 SW_ERROR_CO_DISABLED_MULTI_THREAD, 178 179 SW_ERROR_CO_CANNOT_CANCEL, 180 SW_ERROR_CO_NOT_EXISTS, 181 SW_ERROR_CO_CANCELED, 182 SW_ERROR_CO_TIMEDOUT, 183 184 SW_ERROR_END 185 }; 186 187 namespace swoole { 188 class Exception { 189 public: 190 int code; 191 const char *msg; 192 193 Exception(int code) throw(); 194 }; 195 } // namespace swoole 196