1 // 2 // 3 // Copyright 2020 gRPC authors. 4 // 5 // Licensed under the Apache License, Version 2.0 (the "License"); 6 // you may not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // 9 // http://www.apache.org/licenses/LICENSE-2.0 10 // 11 // Unless required by applicable law or agreed to in writing, software 12 // distributed under the License is distributed on an "AS IS" BASIS, 13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 // See the License for the specific language governing permissions and 15 // limitations under the License. 16 // 17 // 18 19 #include <grpc/support/port_platform.h> 20 21 #include "src/core/ext/transport/cronet/transport/cronet_status.h" 22 cronet_net_error_as_string(cronet_net_error_code net_error)23const char* cronet_net_error_as_string(cronet_net_error_code net_error) { 24 switch (net_error) { 25 case OK: 26 return "OK"; 27 case CRONET_NET_ERROR_IO_PENDING: 28 return "CRONET_NET_ERROR_IO_PENDING"; 29 case CRONET_NET_ERROR_FAILED: 30 return "CRONET_NET_ERROR_FAILED"; 31 case CRONET_NET_ERROR_ABORTED: 32 return "CRONET_NET_ERROR_ABORTED"; 33 case CRONET_NET_ERROR_INVALID_ARGUMENT: 34 return "CRONET_NET_ERROR_INVALID_ARGUMENT"; 35 case CRONET_NET_ERROR_INVALID_HANDLE: 36 return "CRONET_NET_ERROR_INVALID_HANDLE"; 37 case CRONET_NET_ERROR_FILE_NOT_FOUND: 38 return "CRONET_NET_ERROR_FILE_NOT_FOUND"; 39 case CRONET_NET_ERROR_TIMED_OUT: 40 return "CRONET_NET_ERROR_TIMED_OUT"; 41 case CRONET_NET_ERROR_FILE_TOO_BIG: 42 return "CRONET_NET_ERROR_FILE_TOO_BIG"; 43 case CRONET_NET_ERROR_UNEXPECTED: 44 return "CRONET_NET_ERROR_UNEXPECTED"; 45 case CRONET_NET_ERROR_ACCESS_DENIED: 46 return "CRONET_NET_ERROR_ACCESS_DENIED"; 47 case CRONET_NET_ERROR_NOT_IMPLEMENTED: 48 return "CRONET_NET_ERROR_NOT_IMPLEMENTED"; 49 case CRONET_NET_ERROR_INSUFFICIENT_RESOURCES: 50 return "CRONET_NET_ERROR_INSUFFICIENT_RESOURCES"; 51 case CRONET_NET_ERROR_OUT_OF_MEMORY: 52 return "CRONET_NET_ERROR_OUT_OF_MEMORY"; 53 case CRONET_NET_ERROR_UPLOAD_FILE_CHANGED: 54 return "CRONET_NET_ERROR_UPLOAD_FILE_CHANGED"; 55 case CRONET_NET_ERROR_SOCKET_NOT_CONNECTED: 56 return "CRONET_NET_ERROR_SOCKET_NOT_CONNECTED"; 57 case CRONET_NET_ERROR_FILE_EXISTS: 58 return "CRONET_NET_ERROR_FILE_EXISTS"; 59 case CRONET_NET_ERROR_FILE_PATH_TOO_LONG: 60 return "CRONET_NET_ERROR_FILE_PATH_TOO_LONG"; 61 case CRONET_NET_ERROR_FILE_NO_SPACE: 62 return "CRONET_NET_ERROR_FILE_NO_SPACE"; 63 case CRONET_NET_ERROR_FILE_VIRUS_INFECTED: 64 return "CRONET_NET_ERROR_FILE_VIRUS_INFECTED"; 65 case CRONET_NET_ERROR_BLOCKED_BY_CLIENT: 66 return "CRONET_NET_ERROR_BLOCKED_BY_CLIENT"; 67 case CRONET_NET_ERROR_NETWORK_CHANGED: 68 return "CRONET_NET_ERROR_NETWORK_CHANGED"; 69 case CRONET_NET_ERROR_BLOCKED_BY_ADMINISTRATOR: 70 return "CRONET_NET_ERROR_BLOCKED_BY_ADMINISTRATOR"; 71 case CRONET_NET_ERROR_SOCKET_IS_CONNECTED: 72 return "CRONET_NET_ERROR_SOCKET_IS_CONNECTED"; 73 case CRONET_NET_ERROR_BLOCKED_ENROLLMENT_CHECK_PENDING: 74 return "CRONET_NET_ERROR_BLOCKED_ENROLLMENT_CHECK_PENDING"; 75 case CRONET_NET_ERROR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED: 76 return "CRONET_NET_ERROR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED"; 77 case CRONET_NET_ERROR_CONTEXT_SHUT_DOWN: 78 return "CRONET_NET_ERROR_CONTEXT_SHUT_DOWN"; 79 case CRONET_NET_ERROR_BLOCKED_BY_RESPONSE: 80 return "CRONET_NET_ERROR_BLOCKED_BY_RESPONSE"; 81 case CRONET_NET_ERROR_CLEARTEXT_NOT_PERMITTED: 82 return "CRONET_NET_ERROR_CLEARTEXT_NOT_PERMITTED"; 83 case CRONET_NET_ERROR_BLOCKED_BY_CSP: 84 return "CRONET_NET_ERROR_BLOCKED_BY_CSP"; 85 case CRONET_NET_ERROR_H2_OR_QUIC_REQUIRED: 86 return "CRONET_NET_ERROR_H2_OR_QUIC_REQUIRED"; 87 case CRONET_NET_ERROR_INSECURE_PRIVATE_NETWORK_REQUEST: 88 return "CRONET_NET_ERROR_INSECURE_PRIVATE_NETWORK_REQUEST"; 89 case CRONET_NET_ERROR_CONNECTION_CLOSED: 90 return "CRONET_NET_ERROR_CONNECTION_CLOSED"; 91 case CRONET_NET_ERROR_CONNECTION_RESET: 92 return "CRONET_NET_ERROR_CONNECTION_RESET"; 93 case CRONET_NET_ERROR_CONNECTION_REFUSED: 94 return "CRONET_NET_ERROR_CONNECTION_REFUSED"; 95 case CRONET_NET_ERROR_CONNECTION_ABORTED: 96 return "CRONET_NET_ERROR_CONNECTION_ABORTED"; 97 case CRONET_NET_ERROR_CONNECTION_FAILED: 98 return "CRONET_NET_ERROR_CONNECTION_FAILED"; 99 case CRONET_NET_ERROR_NAME_NOT_RESOLVED: 100 return "CRONET_NET_ERROR_NAME_NOT_RESOLVED"; 101 case CRONET_NET_ERROR_INTERNET_DISCONNECTED: 102 return "CRONET_NET_ERROR_INTERNET_DISCONNECTED"; 103 case CRONET_NET_ERROR_SSL_PROTOCOL_ERROR: 104 return "CRONET_NET_ERROR_SSL_PROTOCOL_ERROR"; 105 case CRONET_NET_ERROR_ADDRESS_INVALID: 106 return "CRONET_NET_ERROR_ADDRESS_INVALID"; 107 case CRONET_NET_ERROR_ADDRESS_UNREACHABLE: 108 return "CRONET_NET_ERROR_ADDRESS_UNREACHABLE"; 109 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_NEEDED: 110 return "CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_NEEDED"; 111 case CRONET_NET_ERROR_TUNNEL_CONNECTION_FAILED: 112 return "CRONET_NET_ERROR_TUNNEL_CONNECTION_FAILED"; 113 case CRONET_NET_ERROR_NO_SSL_VERSIONS_ENABLED: 114 return "CRONET_NET_ERROR_NO_SSL_VERSIONS_ENABLED"; 115 case CRONET_NET_ERROR_SSL_VERSION_OR_CIPHER_MISMATCH: 116 return "CRONET_NET_ERROR_SSL_VERSION_OR_CIPHER_MISMATCH"; 117 case CRONET_NET_ERROR_SSL_RENEGOTIATION_REQUESTED: 118 return "CRONET_NET_ERROR_SSL_RENEGOTIATION_REQUESTED"; 119 case CRONET_NET_ERROR_PROXY_AUTH_UNSUPPORTED: 120 return "CRONET_NET_ERROR_PROXY_AUTH_UNSUPPORTED"; 121 case CRONET_NET_ERROR_CERT_ERROR_IN_SSL_RENEGOTIATION: 122 return "CRONET_NET_ERROR_CERT_ERROR_IN_SSL_RENEGOTIATION"; 123 case CRONET_NET_ERROR_BAD_SSL_CLIENT_AUTH_CERT: 124 return "CRONET_NET_ERROR_BAD_SSL_CLIENT_AUTH_CERT"; 125 case CRONET_NET_ERROR_CONNECTION_TIMED_OUT: 126 return "CRONET_NET_ERROR_CONNECTION_TIMED_OUT"; 127 case CRONET_NET_ERROR_HOST_RESOLVER_QUEUE_TOO_LARGE: 128 return "CRONET_NET_ERROR_HOST_RESOLVER_QUEUE_TOO_LARGE"; 129 case CRONET_NET_ERROR_SOCKS_CONNECTION_FAILED: 130 return "CRONET_NET_ERROR_SOCKS_CONNECTION_FAILED"; 131 case CRONET_NET_ERROR_SOCKS_CONNECTION_HOST_UNREACHABLE: 132 return "CRONET_NET_ERROR_SOCKS_CONNECTION_HOST_UNREACHABLE"; 133 case CRONET_NET_ERROR_ALPN_NEGOTIATION_FAILED: 134 return "CRONET_NET_ERROR_ALPN_NEGOTIATION_FAILED"; 135 case CRONET_NET_ERROR_SSL_NO_RENEGOTIATION: 136 return "CRONET_NET_ERROR_SSL_NO_RENEGOTIATION"; 137 case CRONET_NET_ERROR_WINSOCK_UNEXPECTED_WRITTEN_BYTES: 138 return "CRONET_NET_ERROR_WINSOCK_UNEXPECTED_WRITTEN_BYTES"; 139 case CRONET_NET_ERROR_SSL_DECOMPRESSION_FAILURE_ALERT: 140 return "CRONET_NET_ERROR_SSL_DECOMPRESSION_FAILURE_ALERT"; 141 case CRONET_NET_ERROR_SSL_BAD_RECORD_MAC_ALERT: 142 return "CRONET_NET_ERROR_SSL_BAD_RECORD_MAC_ALERT"; 143 case CRONET_NET_ERROR_PROXY_AUTH_REQUESTED: 144 return "CRONET_NET_ERROR_PROXY_AUTH_REQUESTED"; 145 case CRONET_NET_ERROR_PROXY_CONNECTION_FAILED: 146 return "CRONET_NET_ERROR_PROXY_CONNECTION_FAILED"; 147 case CRONET_NET_ERROR_MANDATORY_PROXY_CONFIGURATION_FAILED: 148 return "CRONET_NET_ERROR_MANDATORY_PROXY_CONFIGURATION_FAILED"; 149 case CRONET_NET_ERROR_PRECONNECT_MAX_SOCKET_LIMIT: 150 return "CRONET_NET_ERROR_PRECONNECT_MAX_SOCKET_LIMIT"; 151 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED: 152 return "CRONET_NET_ERROR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED"; 153 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY: 154 return "CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY"; 155 case CRONET_NET_ERROR_PROXY_CERTIFICATE_INVALID: 156 return "CRONET_NET_ERROR_PROXY_CERTIFICATE_INVALID"; 157 case CRONET_NET_ERROR_NAME_RESOLUTION_FAILED: 158 return "CRONET_NET_ERROR_NAME_RESOLUTION_FAILED"; 159 case CRONET_NET_ERROR_NETWORK_ACCESS_DENIED: 160 return "CRONET_NET_ERROR_NETWORK_ACCESS_DENIED"; 161 case CRONET_NET_ERROR_TEMPORARILY_THROTTLED: 162 return "CRONET_NET_ERROR_TEMPORARILY_THROTTLED"; 163 case CRONET_NET_ERROR_HTTPS_PROXY_TUNNEL_RESPONSE_REDIRECT: 164 return "CRONET_NET_ERROR_HTTPS_PROXY_TUNNEL_RESPONSE_REDIRECT"; 165 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_SIGNATURE_FAILED: 166 return "CRONET_NET_ERROR_SSL_CLIENT_AUTH_SIGNATURE_FAILED"; 167 case CRONET_NET_ERROR_MSG_TOO_BIG: 168 return "CRONET_NET_ERROR_MSG_TOO_BIG"; 169 case CRONET_NET_ERROR_WS_PROTOCOL_ERROR: 170 return "CRONET_NET_ERROR_WS_PROTOCOL_ERROR"; 171 case CRONET_NET_ERROR_ADDRESS_IN_USE: 172 return "CRONET_NET_ERROR_ADDRESS_IN_USE"; 173 case CRONET_NET_ERROR_SSL_HANDSHAKE_NOT_COMPLETED: 174 return "CRONET_NET_ERROR_SSL_HANDSHAKE_NOT_COMPLETED"; 175 case CRONET_NET_ERROR_SSL_BAD_PEER_PUBLIC_KEY: 176 return "CRONET_NET_ERROR_SSL_BAD_PEER_PUBLIC_KEY"; 177 case CRONET_NET_ERROR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN: 178 return "CRONET_NET_ERROR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN"; 179 case CRONET_NET_ERROR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED: 180 return "CRONET_NET_ERROR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED"; 181 case CRONET_NET_ERROR_SSL_DECRYPT_ERROR_ALERT: 182 return "CRONET_NET_ERROR_SSL_DECRYPT_ERROR_ALERT"; 183 case CRONET_NET_ERROR_WS_THROTTLE_QUEUE_TOO_LARGE: 184 return "CRONET_NET_ERROR_WS_THROTTLE_QUEUE_TOO_LARGE"; 185 case CRONET_NET_ERROR_SSL_SERVER_CERT_CHANGED: 186 return "CRONET_NET_ERROR_SSL_SERVER_CERT_CHANGED"; 187 case CRONET_NET_ERROR_SSL_UNRECOGNIZED_NAME_ALERT: 188 return "CRONET_NET_ERROR_SSL_UNRECOGNIZED_NAME_ALERT"; 189 case CRONET_NET_ERROR_SOCKET_SET_RECEIVE_BUFFER_SIZE_ERROR: 190 return "CRONET_NET_ERROR_SOCKET_SET_RECEIVE_BUFFER_SIZE_ERROR"; 191 case CRONET_NET_ERROR_SOCKET_SET_SEND_BUFFER_SIZE_ERROR: 192 return "CRONET_NET_ERROR_SOCKET_SET_SEND_BUFFER_SIZE_ERROR"; 193 case CRONET_NET_ERROR_SOCKET_RECEIVE_BUFFER_SIZE_UNCHANGEABLE: 194 return "CRONET_NET_ERROR_SOCKET_RECEIVE_BUFFER_SIZE_UNCHANGEABLE"; 195 case CRONET_NET_ERROR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE: 196 return "CRONET_NET_ERROR_SOCKET_SEND_BUFFER_SIZE_UNCHANGEABLE"; 197 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT: 198 return "CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT"; 199 case CRONET_NET_ERROR_ICANN_NAME_COLLISION: 200 return "CRONET_NET_ERROR_ICANN_NAME_COLLISION"; 201 case CRONET_NET_ERROR_SSL_SERVER_CERT_BAD_FORMAT: 202 return "CRONET_NET_ERROR_SSL_SERVER_CERT_BAD_FORMAT"; 203 case CRONET_NET_ERROR_CT_STH_PARSING_FAILED: 204 return "CRONET_NET_ERROR_CT_STH_PARSING_FAILED"; 205 case CRONET_NET_ERROR_CT_STH_INCOMPLETE: 206 return "CRONET_NET_ERROR_CT_STH_INCOMPLETE"; 207 case CRONET_NET_ERROR_UNABLE_TO_REUSE_CONNECTION_FOR_PROXY_AUTH: 208 return "CRONET_NET_ERROR_UNABLE_TO_REUSE_CONNECTION_FOR_PROXY_AUTH"; 209 case CRONET_NET_ERROR_CT_CONSISTENCY_PROOF_PARSING_FAILED: 210 return "CRONET_NET_ERROR_CT_CONSISTENCY_PROOF_PARSING_FAILED"; 211 case CRONET_NET_ERROR_SSL_OBSOLETE_CIPHER: 212 return "CRONET_NET_ERROR_SSL_OBSOLETE_CIPHER"; 213 case CRONET_NET_ERROR_WS_UPGRADE: 214 return "CRONET_NET_ERROR_WS_UPGRADE"; 215 case CRONET_NET_ERROR_READ_IF_READY_NOT_IMPLEMENTED: 216 return "CRONET_NET_ERROR_READ_IF_READY_NOT_IMPLEMENTED"; 217 case CRONET_NET_ERROR_NO_BUFFER_SPACE: 218 return "CRONET_NET_ERROR_NO_BUFFER_SPACE"; 219 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS: 220 return "CRONET_NET_ERROR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS"; 221 case CRONET_NET_ERROR_EARLY_DATA_REJECTED: 222 return "CRONET_NET_ERROR_EARLY_DATA_REJECTED"; 223 case CRONET_NET_ERROR_WRONG_VERSION_ON_EARLY_DATA: 224 return "CRONET_NET_ERROR_WRONG_VERSION_ON_EARLY_DATA"; 225 case CRONET_NET_ERROR_TLS13_DOWNGRADE_DETECTED: 226 return "CRONET_NET_ERROR_TLS13_DOWNGRADE_DETECTED"; 227 case CRONET_NET_ERROR_SSL_KEY_USAGE_INCOMPATIBLE: 228 return "CRONET_NET_ERROR_SSL_KEY_USAGE_INCOMPATIBLE"; 229 case CRONET_NET_ERROR_CERT_COMMON_NAME_INVALID: 230 return "CRONET_NET_ERROR_CERT_COMMON_NAME_INVALID"; 231 case CRONET_NET_ERROR_CERT_DATE_INVALID: 232 return "CRONET_NET_ERROR_CERT_DATE_INVALID"; 233 case CRONET_NET_ERROR_CERT_AUTHORITY_INVALID: 234 return "CRONET_NET_ERROR_CERT_AUTHORITY_INVALID"; 235 case CRONET_NET_ERROR_CERT_CONTAINS_ERRORS: 236 return "CRONET_NET_ERROR_CERT_CONTAINS_ERRORS"; 237 case CRONET_NET_ERROR_CERT_NO_REVOCATION_MECHANISM: 238 return "CRONET_NET_ERROR_CERT_NO_REVOCATION_MECHANISM"; 239 case CRONET_NET_ERROR_CERT_UNABLE_TO_CHECK_REVOCATION: 240 return "CRONET_NET_ERROR_CERT_UNABLE_TO_CHECK_REVOCATION"; 241 case CRONET_NET_ERROR_CERT_REVOKED: 242 return "CRONET_NET_ERROR_CERT_REVOKED"; 243 case CRONET_NET_ERROR_CERT_INVALID: 244 return "CRONET_NET_ERROR_CERT_INVALID"; 245 case CRONET_NET_ERROR_CERT_WEAK_SIGNATURE_ALGORITHM: 246 return "CRONET_NET_ERROR_CERT_WEAK_SIGNATURE_ALGORITHM"; 247 case CRONET_NET_ERROR_CERT_NON_UNIQUE_NAME: 248 return "CRONET_NET_ERROR_CERT_NON_UNIQUE_NAME"; 249 case CRONET_NET_ERROR_CERT_WEAK_KEY: 250 return "CRONET_NET_ERROR_CERT_WEAK_KEY"; 251 case CRONET_NET_ERROR_CERT_NAME_CONSTRAINT_VIOLATION: 252 return "CRONET_NET_ERROR_CERT_NAME_CONSTRAINT_VIOLATION"; 253 case CRONET_NET_ERROR_CERT_VALIDITY_TOO_LONG: 254 return "CRONET_NET_ERROR_CERT_VALIDITY_TOO_LONG"; 255 case CRONET_NET_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED: 256 return "CRONET_NET_ERROR_CERTIFICATE_TRANSPARENCY_REQUIRED"; 257 case CRONET_NET_ERROR_CERT_SYMANTEC_LEGACY: 258 return "CRONET_NET_ERROR_CERT_SYMANTEC_LEGACY"; 259 case CRONET_NET_ERROR_CERT_KNOWN_INTERCEPTION_BLOCKED: 260 return "CRONET_NET_ERROR_CERT_KNOWN_INTERCEPTION_BLOCKED"; 261 case CRONET_NET_ERROR_SSL_OBSOLETE_VERSION: 262 return "CRONET_NET_ERROR_SSL_OBSOLETE_VERSION"; 263 case CRONET_NET_ERROR_CERT_END: 264 return "CRONET_NET_ERROR_CERT_END"; 265 case CRONET_NET_ERROR_INVALID_URL: 266 return "CRONET_NET_ERROR_INVALID_URL"; 267 case CRONET_NET_ERROR_DISALLOWED_URL_SCHEME: 268 return "CRONET_NET_ERROR_DISALLOWED_URL_SCHEME"; 269 case CRONET_NET_ERROR_UNKNOWN_URL_SCHEME: 270 return "CRONET_NET_ERROR_UNKNOWN_URL_SCHEME"; 271 case CRONET_NET_ERROR_INVALID_REDIRECT: 272 return "CRONET_NET_ERROR_INVALID_REDIRECT"; 273 case CRONET_NET_ERROR_TOO_MANY_REDIRECTS: 274 return "CRONET_NET_ERROR_TOO_MANY_REDIRECTS"; 275 case CRONET_NET_ERROR_UNSAFE_REDIRECT: 276 return "CRONET_NET_ERROR_UNSAFE_REDIRECT"; 277 case CRONET_NET_ERROR_UNSAFE_PORT: 278 return "CRONET_NET_ERROR_UNSAFE_PORT"; 279 case CRONET_NET_ERROR_INVALID_RESPONSE: 280 return "CRONET_NET_ERROR_INVALID_RESPONSE"; 281 case CRONET_NET_ERROR_INVALID_CHUNKED_ENCODING: 282 return "CRONET_NET_ERROR_INVALID_CHUNKED_ENCODING"; 283 case CRONET_NET_ERROR_METHOD_NOT_SUPPORTED: 284 return "CRONET_NET_ERROR_METHOD_NOT_SUPPORTED"; 285 case CRONET_NET_ERROR_UNEXPECTED_PROXY_AUTH: 286 return "CRONET_NET_ERROR_UNEXPECTED_PROXY_AUTH"; 287 case CRONET_NET_ERROR_EMPTY_RESPONSE: 288 return "CRONET_NET_ERROR_EMPTY_RESPONSE"; 289 case CRONET_NET_ERROR_RESPONSE_HEADERS_TOO_BIG: 290 return "CRONET_NET_ERROR_RESPONSE_HEADERS_TOO_BIG"; 291 case CRONET_NET_ERROR_PAC_SCRIPT_FAILED: 292 return "CRONET_NET_ERROR_PAC_SCRIPT_FAILED"; 293 case CRONET_NET_ERROR_REQUEST_RANGE_NOT_SATISFIABLE: 294 return "CRONET_NET_ERROR_REQUEST_RANGE_NOT_SATISFIABLE"; 295 case CRONET_NET_ERROR_MALFORMED_IDENTITY: 296 return "CRONET_NET_ERROR_MALFORMED_IDENTITY"; 297 case CRONET_NET_ERROR_CONTENT_DECODING_FAILED: 298 return "CRONET_NET_ERROR_CONTENT_DECODING_FAILED"; 299 case CRONET_NET_ERROR_NETWORK_IO_SUSPENDED: 300 return "CRONET_NET_ERROR_NETWORK_IO_SUSPENDED"; 301 case CRONET_NET_ERROR_SYN_REPLY_NOT_RECEIVED: 302 return "CRONET_NET_ERROR_SYN_REPLY_NOT_RECEIVED"; 303 case CRONET_NET_ERROR_ENCODING_CONVERSION_FAILED: 304 return "CRONET_NET_ERROR_ENCODING_CONVERSION_FAILED"; 305 case CRONET_NET_ERROR_UNRECOGNIZED_FTP_DIRECTORY_LISTING_FORMAT: 306 return "CRONET_NET_ERROR_UNRECOGNIZED_FTP_DIRECTORY_LISTING_FORMAT"; 307 case CRONET_NET_ERROR_NO_SUPPORTED_PROXIES: 308 return "CRONET_NET_ERROR_NO_SUPPORTED_PROXIES"; 309 case CRONET_NET_ERROR_HTTP2_PROTOCOL_ERROR: 310 return "CRONET_NET_ERROR_HTTP2_PROTOCOL_ERROR"; 311 case CRONET_NET_ERROR_INVALID_AUTH_CREDENTIALS: 312 return "CRONET_NET_ERROR_INVALID_AUTH_CREDENTIALS"; 313 case CRONET_NET_ERROR_UNSUPPORTED_AUTH_SCHEME: 314 return "CRONET_NET_ERROR_UNSUPPORTED_AUTH_SCHEME"; 315 case CRONET_NET_ERROR_ENCODING_DETECTION_FAILED: 316 return "CRONET_NET_ERROR_ENCODING_DETECTION_FAILED"; 317 case CRONET_NET_ERROR_MISSING_AUTH_CREDENTIALS: 318 return "CRONET_NET_ERROR_MISSING_AUTH_CREDENTIALS"; 319 case CRONET_NET_ERROR_UNEXPECTED_SECURITY_LIBRARY_STATUS: 320 return "CRONET_NET_ERROR_UNEXPECTED_SECURITY_LIBRARY_STATUS"; 321 case CRONET_NET_ERROR_MISCONFIGURED_AUTH_ENVIRONMENT: 322 return "CRONET_NET_ERROR_MISCONFIGURED_AUTH_ENVIRONMENT"; 323 case CRONET_NET_ERROR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS: 324 return "CRONET_NET_ERROR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS"; 325 case CRONET_NET_ERROR_RESPONSE_BODY_TOO_BIG_TO_DRAIN: 326 return "CRONET_NET_ERROR_RESPONSE_BODY_TOO_BIG_TO_DRAIN"; 327 case CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH: 328 return "CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH"; 329 case CRONET_NET_ERROR_INCOMPLETE_HTTP2_HEADERS: 330 return "CRONET_NET_ERROR_INCOMPLETE_HTTP2_HEADERS"; 331 case CRONET_NET_ERROR_PAC_NOT_IN_DHCP: 332 return "CRONET_NET_ERROR_PAC_NOT_IN_DHCP"; 333 case CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION: 334 return "CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION"; 335 case CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_LOCATION: 336 return "CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_LOCATION"; 337 case CRONET_NET_ERROR_HTTP2_SERVER_REFUSED_STREAM: 338 return "CRONET_NET_ERROR_HTTP2_SERVER_REFUSED_STREAM"; 339 case CRONET_NET_ERROR_HTTP2_PING_FAILED: 340 return "CRONET_NET_ERROR_HTTP2_PING_FAILED"; 341 case CRONET_NET_ERROR_CONTENT_LENGTH_MISMATCH: 342 return "CRONET_NET_ERROR_CONTENT_LENGTH_MISMATCH"; 343 case CRONET_NET_ERROR_INCOMPLETE_CHUNKED_ENCODING: 344 return "CRONET_NET_ERROR_INCOMPLETE_CHUNKED_ENCODING"; 345 case CRONET_NET_ERROR_QUIC_PROTOCOL_ERROR: 346 return "CRONET_NET_ERROR_QUIC_PROTOCOL_ERROR"; 347 case CRONET_NET_ERROR_RESPONSE_HEADERS_TRUNCATED: 348 return "CRONET_NET_ERROR_RESPONSE_HEADERS_TRUNCATED"; 349 case CRONET_NET_ERROR_QUIC_HANDSHAKE_FAILED: 350 return "CRONET_NET_ERROR_QUIC_HANDSHAKE_FAILED"; 351 case CRONET_NET_ERROR_HTTP2_INADEQUATE_TRANSPORT_SECURITY: 352 return "CRONET_NET_ERROR_HTTP2_INADEQUATE_TRANSPORT_SECURITY"; 353 case CRONET_NET_ERROR_HTTP2_FLOW_CONTROL_ERROR: 354 return "CRONET_NET_ERROR_HTTP2_FLOW_CONTROL_ERROR"; 355 case CRONET_NET_ERROR_HTTP2_FRAME_SIZE_ERROR: 356 return "CRONET_NET_ERROR_HTTP2_FRAME_SIZE_ERROR"; 357 case CRONET_NET_ERROR_HTTP2_COMPRESSION_ERROR: 358 return "CRONET_NET_ERROR_HTTP2_COMPRESSION_ERROR"; 359 case CRONET_NET_ERROR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION: 360 return "CRONET_NET_ERROR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION"; 361 case CRONET_NET_ERROR_HTTP_1_1_REQUIRED: 362 return "CRONET_NET_ERROR_HTTP_1_1_REQUIRED"; 363 case CRONET_NET_ERROR_PROXY_HTTP_1_1_REQUIRED: 364 return "CRONET_NET_ERROR_PROXY_HTTP_1_1_REQUIRED"; 365 case CRONET_NET_ERROR_PAC_SCRIPT_TERMINATED: 366 return "CRONET_NET_ERROR_PAC_SCRIPT_TERMINATED"; 367 case CRONET_NET_ERROR_INVALID_HTTP_RESPONSE: 368 return "CRONET_NET_ERROR_INVALID_HTTP_RESPONSE"; 369 case CRONET_NET_ERROR_CONTENT_DECODING_INIT_FAILED: 370 return "CRONET_NET_ERROR_CONTENT_DECODING_INIT_FAILED"; 371 case CRONET_NET_ERROR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED: 372 return "CRONET_NET_ERROR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED"; 373 case CRONET_NET_ERROR_HTTP2_PUSHED_STREAM_NOT_AVAILABLE: 374 return "CRONET_NET_ERROR_HTTP2_PUSHED_STREAM_NOT_AVAILABLE"; 375 case CRONET_NET_ERROR_HTTP2_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER: 376 return "CRONET_NET_ERROR_HTTP2_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER"; 377 case CRONET_NET_ERROR_TOO_MANY_RETRIES: 378 return "CRONET_NET_ERROR_TOO_MANY_RETRIES"; 379 case CRONET_NET_ERROR_HTTP2_STREAM_CLOSED: 380 return "CRONET_NET_ERROR_HTTP2_STREAM_CLOSED"; 381 case CRONET_NET_ERROR_HTTP2_CLIENT_REFUSED_STREAM: 382 return "CRONET_NET_ERROR_HTTP2_CLIENT_REFUSED_STREAM"; 383 case CRONET_NET_ERROR_HTTP2_PUSHED_RESPONSE_DOES_NOT_MATCH: 384 return "CRONET_NET_ERROR_HTTP2_PUSHED_RESPONSE_DOES_NOT_MATCH"; 385 case CRONET_NET_ERROR_HTTP_RESPONSE_CODE_FAILURE: 386 return "CRONET_NET_ERROR_HTTP_RESPONSE_CODE_FAILURE"; 387 case CRONET_NET_ERROR_QUIC_CERT_ROOT_NOT_KNOWN: 388 return "CRONET_NET_ERROR_QUIC_CERT_ROOT_NOT_KNOWN"; 389 case CRONET_NET_ERROR_CACHE_MISS: 390 return "CRONET_NET_ERROR_CACHE_MISS"; 391 case CRONET_NET_ERROR_CACHE_READ_FAILURE: 392 return "CRONET_NET_ERROR_CACHE_READ_FAILURE"; 393 case CRONET_NET_ERROR_CACHE_WRITE_FAILURE: 394 return "CRONET_NET_ERROR_CACHE_WRITE_FAILURE"; 395 case CRONET_NET_ERROR_CACHE_OPERATION_NOT_SUPPORTED: 396 return "CRONET_NET_ERROR_CACHE_OPERATION_NOT_SUPPORTED"; 397 case CRONET_NET_ERROR_CACHE_OPEN_FAILURE: 398 return "CRONET_NET_ERROR_CACHE_OPEN_FAILURE"; 399 case CRONET_NET_ERROR_CACHE_CREATE_FAILURE: 400 return "CRONET_NET_ERROR_CACHE_CREATE_FAILURE"; 401 case CRONET_NET_ERROR_CACHE_RACE: 402 return "CRONET_NET_ERROR_CACHE_RACE"; 403 case CRONET_NET_ERROR_CACHE_CHECKSUM_READ_FAILURE: 404 return "CRONET_NET_ERROR_CACHE_CHECKSUM_READ_FAILURE"; 405 case CRONET_NET_ERROR_CACHE_CHECKSUM_MISMATCH: 406 return "CRONET_NET_ERROR_CACHE_CHECKSUM_MISMATCH"; 407 case CRONET_NET_ERROR_CACHE_LOCK_TIMEOUT: 408 return "CRONET_NET_ERROR_CACHE_LOCK_TIMEOUT"; 409 case CRONET_NET_ERROR_CACHE_AUTH_FAILURE_AFTER_READ: 410 return "CRONET_NET_ERROR_CACHE_AUTH_FAILURE_AFTER_READ"; 411 case CRONET_NET_ERROR_CACHE_ENTRY_NOT_SUITABLE: 412 return "CRONET_NET_ERROR_CACHE_ENTRY_NOT_SUITABLE"; 413 case CRONET_NET_ERROR_CACHE_DOOM_FAILURE: 414 return "CRONET_NET_ERROR_CACHE_DOOM_FAILURE"; 415 case CRONET_NET_ERROR_CACHE_OPEN_OR_CREATE_FAILURE: 416 return "CRONET_NET_ERROR_CACHE_OPEN_OR_CREATE_FAILURE"; 417 case CRONET_NET_ERROR_INSECURE_RESPONSE: 418 return "CRONET_NET_ERROR_INSECURE_RESPONSE"; 419 case CRONET_NET_ERROR_NO_PRIVATE_KEY_FOR_CERT: 420 return "CRONET_NET_ERROR_NO_PRIVATE_KEY_FOR_CERT"; 421 case CRONET_NET_ERROR_ADD_USER_CERT_FAILED: 422 return "CRONET_NET_ERROR_ADD_USER_CERT_FAILED"; 423 case CRONET_NET_ERROR_INVALID_SIGNED_EXCHANGE: 424 return "CRONET_NET_ERROR_INVALID_SIGNED_EXCHANGE"; 425 case CRONET_NET_ERROR_INVALID_WEB_BUNDLE: 426 return "CRONET_NET_ERROR_INVALID_WEB_BUNDLE"; 427 case CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_FAILED: 428 return "CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_FAILED"; 429 case CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_CACHE_HIT: 430 return "CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_CACHE_HIT"; 431 case CRONET_NET_ERROR_FTP_FAILED: 432 return "CRONET_NET_ERROR_FTP_FAILED"; 433 case CRONET_NET_ERROR_FTP_SERVICE_UNAVAILABLE: 434 return "CRONET_NET_ERROR_FTP_SERVICE_UNAVAILABLE"; 435 case CRONET_NET_ERROR_FTP_TRANSFER_ABORTED: 436 return "CRONET_NET_ERROR_FTP_TRANSFER_ABORTED"; 437 case CRONET_NET_ERROR_FTP_FILE_BUSY: 438 return "CRONET_NET_ERROR_FTP_FILE_BUSY"; 439 case CRONET_NET_ERROR_FTP_SYNTAX_ERROR: 440 return "CRONET_NET_ERROR_FTP_SYNTAX_ERROR"; 441 case CRONET_NET_ERROR_FTP_COMMAND_NOT_SUPPORTED: 442 return "CRONET_NET_ERROR_FTP_COMMAND_NOT_SUPPORTED"; 443 case CRONET_NET_ERROR_FTP_BAD_COMMAND_SEQUENCE: 444 return "CRONET_NET_ERROR_FTP_BAD_COMMAND_SEQUENCE"; 445 case CRONET_NET_ERROR_PKCS12_IMPORT_BAD_PASSWORD: 446 return "CRONET_NET_ERROR_PKCS12_IMPORT_BAD_PASSWORD"; 447 case CRONET_NET_ERROR_PKCS12_IMPORT_FAILED: 448 return "CRONET_NET_ERROR_PKCS12_IMPORT_FAILED"; 449 case CRONET_NET_ERROR_IMPORT_CA_CERT_NOT_CA: 450 return "CRONET_NET_ERROR_IMPORT_CA_CERT_NOT_CA"; 451 case CRONET_NET_ERROR_IMPORT_CERT_ALREADY_EXISTS: 452 return "CRONET_NET_ERROR_IMPORT_CERT_ALREADY_EXISTS"; 453 case CRONET_NET_ERROR_IMPORT_CA_CERT_FAILED: 454 return "CRONET_NET_ERROR_IMPORT_CA_CERT_FAILED"; 455 case CRONET_NET_ERROR_IMPORT_SERVER_CERT_FAILED: 456 return "CRONET_NET_ERROR_IMPORT_SERVER_CERT_FAILED"; 457 case CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_MAC: 458 return "CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_MAC"; 459 case CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_FILE: 460 return "CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_FILE"; 461 case CRONET_NET_ERROR_PKCS12_IMPORT_UNSUPPORTED: 462 return "CRONET_NET_ERROR_PKCS12_IMPORT_UNSUPPORTED"; 463 case CRONET_NET_ERROR_KEY_GENERATION_FAILED: 464 return "CRONET_NET_ERROR_KEY_GENERATION_FAILED"; 465 case CRONET_NET_ERROR_PRIVATE_KEY_EXPORT_FAILED: 466 return "CRONET_NET_ERROR_PRIVATE_KEY_EXPORT_FAILED"; 467 case CRONET_NET_ERROR_SELF_SIGNED_CERT_GENERATION_FAILED: 468 return "CRONET_NET_ERROR_SELF_SIGNED_CERT_GENERATION_FAILED"; 469 case CRONET_NET_ERROR_CERT_DATABASE_CHANGED: 470 return "CRONET_NET_ERROR_CERT_DATABASE_CHANGED"; 471 case CRONET_NET_ERROR_DNS_MALFORMED_RESPONSE: 472 return "CRONET_NET_ERROR_DNS_MALFORMED_RESPONSE"; 473 case CRONET_NET_ERROR_DNS_SERVER_REQUIRES_TCP: 474 return "CRONET_NET_ERROR_DNS_SERVER_REQUIRES_TCP"; 475 case CRONET_NET_ERROR_DNS_SERVER_FAILED: 476 return "CRONET_NET_ERROR_DNS_SERVER_FAILED"; 477 case CRONET_NET_ERROR_DNS_TIMED_OUT: 478 return "CRONET_NET_ERROR_DNS_TIMED_OUT"; 479 case CRONET_NET_ERROR_DNS_CACHE_MISS: 480 return "CRONET_NET_ERROR_DNS_CACHE_MISS"; 481 case CRONET_NET_ERROR_DNS_SEARCH_EMPTY: 482 return "CRONET_NET_ERROR_DNS_SEARCH_EMPTY"; 483 case CRONET_NET_ERROR_DNS_SORT_ERROR: 484 return "CRONET_NET_ERROR_DNS_SORT_ERROR"; 485 case CRONET_NET_ERROR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED: 486 return "CRONET_NET_ERROR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED"; 487 } 488 return "UNAVAILABLE."; 489 } 490 cronet_net_error_to_grpc_error(cronet_net_error_code net_error)491grpc_status_code cronet_net_error_to_grpc_error( 492 cronet_net_error_code net_error) { 493 switch (net_error) { 494 case OK: 495 return GRPC_STATUS_OK; 496 case CRONET_NET_ERROR_ABORTED: 497 return GRPC_STATUS_ABORTED; 498 case CRONET_NET_ERROR_ACCESS_DENIED: 499 case CRONET_NET_ERROR_NETWORK_ACCESS_DENIED: 500 return GRPC_STATUS_PERMISSION_DENIED; 501 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_NEEDED: 502 case CRONET_NET_ERROR_PROXY_AUTH_UNSUPPORTED: 503 case CRONET_NET_ERROR_BAD_SSL_CLIENT_AUTH_CERT: 504 case CRONET_NET_ERROR_PROXY_AUTH_REQUESTED: 505 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_PRIVATE_KEY_ACCESS_DENIED: 506 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_NO_PRIVATE_KEY: 507 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_SIGNATURE_FAILED: 508 case CRONET_NET_ERROR_CLIENT_AUTH_CERT_TYPE_UNSUPPORTED: 509 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_CERT_BAD_FORMAT: 510 case CRONET_NET_ERROR_SSL_CLIENT_AUTH_NO_COMMON_ALGORITHMS: 511 case CRONET_NET_ERROR_CERT_AUTHORITY_INVALID: 512 case CRONET_NET_ERROR_UNEXPECTED_PROXY_AUTH: 513 case CRONET_NET_ERROR_MALFORMED_IDENTITY: 514 case CRONET_NET_ERROR_INVALID_AUTH_CREDENTIALS: 515 case CRONET_NET_ERROR_UNSUPPORTED_AUTH_SCHEME: 516 case CRONET_NET_ERROR_MISSING_AUTH_CREDENTIALS: 517 return GRPC_STATUS_UNAUTHENTICATED; 518 default: 519 return GRPC_STATUS_UNAVAILABLE; 520 } 521 } 522