• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/impl/codegen/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)23 const 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       return "CRONET_NET_ERROR_INVALID_SPDY_STREAM";
308     case CRONET_NET_ERROR_NO_SUPPORTED_PROXIES:
309       return "CRONET_NET_ERROR_NO_SUPPORTED_PROXIES";
310     case CRONET_NET_ERROR_HTTP2_PROTOCOL_ERROR:
311       return "CRONET_NET_ERROR_HTTP2_PROTOCOL_ERROR";
312     case CRONET_NET_ERROR_INVALID_AUTH_CREDENTIALS:
313       return "CRONET_NET_ERROR_INVALID_AUTH_CREDENTIALS";
314     case CRONET_NET_ERROR_UNSUPPORTED_AUTH_SCHEME:
315       return "CRONET_NET_ERROR_UNSUPPORTED_AUTH_SCHEME";
316     case CRONET_NET_ERROR_ENCODING_DETECTION_FAILED:
317       return "CRONET_NET_ERROR_ENCODING_DETECTION_FAILED";
318     case CRONET_NET_ERROR_MISSING_AUTH_CREDENTIALS:
319       return "CRONET_NET_ERROR_MISSING_AUTH_CREDENTIALS";
320     case CRONET_NET_ERROR_UNEXPECTED_SECURITY_LIBRARY_STATUS:
321       return "CRONET_NET_ERROR_UNEXPECTED_SECURITY_LIBRARY_STATUS";
322     case CRONET_NET_ERROR_MISCONFIGURED_AUTH_ENVIRONMENT:
323       return "CRONET_NET_ERROR_MISCONFIGURED_AUTH_ENVIRONMENT";
324     case CRONET_NET_ERROR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS:
325       return "CRONET_NET_ERROR_UNDOCUMENTED_SECURITY_LIBRARY_STATUS";
326     case CRONET_NET_ERROR_RESPONSE_BODY_TOO_BIG_TO_DRAIN:
327       return "CRONET_NET_ERROR_RESPONSE_BODY_TOO_BIG_TO_DRAIN";
328     case CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH:
329       return "CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_LENGTH";
330     case CRONET_NET_ERROR_INCOMPLETE_HTTP2_HEADERS:
331       return "CRONET_NET_ERROR_INCOMPLETE_HTTP2_HEADERS";
332     case CRONET_NET_ERROR_PAC_NOT_IN_DHCP:
333       return "CRONET_NET_ERROR_PAC_NOT_IN_DHCP";
334     case CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION:
335       return "CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION";
336     case CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_LOCATION:
337       return "CRONET_NET_ERROR_RESPONSE_HEADERS_MULTIPLE_LOCATION";
338     case CRONET_NET_ERROR_HTTP2_SERVER_REFUSED_STREAM:
339       return "CRONET_NET_ERROR_HTTP2_SERVER_REFUSED_STREAM";
340     case CRONET_NET_ERROR_HTTP2_PING_FAILED:
341       return "CRONET_NET_ERROR_HTTP2_PING_FAILED";
342       return "CRONET_NET_ERROR_PIPELINE_EVICTION";
343     case CRONET_NET_ERROR_CONTENT_LENGTH_MISMATCH:
344       return "CRONET_NET_ERROR_CONTENT_LENGTH_MISMATCH";
345     case CRONET_NET_ERROR_INCOMPLETE_CHUNKED_ENCODING:
346       return "CRONET_NET_ERROR_INCOMPLETE_CHUNKED_ENCODING";
347     case CRONET_NET_ERROR_QUIC_PROTOCOL_ERROR:
348       return "CRONET_NET_ERROR_QUIC_PROTOCOL_ERROR";
349     case CRONET_NET_ERROR_RESPONSE_HEADERS_TRUNCATED:
350       return "CRONET_NET_ERROR_RESPONSE_HEADERS_TRUNCATED";
351     case CRONET_NET_ERROR_QUIC_HANDSHAKE_FAILED:
352       return "CRONET_NET_ERROR_QUIC_HANDSHAKE_FAILED";
353       return "CRONET_NET_ERROR_REQUEST_FOR_SECURE_RESOURCE_OVER_INSECURE_QUIC";
354     case CRONET_NET_ERROR_HTTP2_INADEQUATE_TRANSPORT_SECURITY:
355       return "CRONET_NET_ERROR_HTTP2_INADEQUATE_TRANSPORT_SECURITY";
356     case CRONET_NET_ERROR_HTTP2_FLOW_CONTROL_ERROR:
357       return "CRONET_NET_ERROR_HTTP2_FLOW_CONTROL_ERROR";
358     case CRONET_NET_ERROR_HTTP2_FRAME_SIZE_ERROR:
359       return "CRONET_NET_ERROR_HTTP2_FRAME_SIZE_ERROR";
360     case CRONET_NET_ERROR_HTTP2_COMPRESSION_ERROR:
361       return "CRONET_NET_ERROR_HTTP2_COMPRESSION_ERROR";
362     case CRONET_NET_ERROR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION:
363       return "CRONET_NET_ERROR_PROXY_AUTH_REQUESTED_WITH_NO_CONNECTION";
364     case CRONET_NET_ERROR_HTTP_1_1_REQUIRED:
365       return "CRONET_NET_ERROR_HTTP_1_1_REQUIRED";
366     case CRONET_NET_ERROR_PROXY_HTTP_1_1_REQUIRED:
367       return "CRONET_NET_ERROR_PROXY_HTTP_1_1_REQUIRED";
368     case CRONET_NET_ERROR_PAC_SCRIPT_TERMINATED:
369       return "CRONET_NET_ERROR_PAC_SCRIPT_TERMINATED";
370       return "CRONET_NET_ERROR_TEMPORARY_BACKOFF";
371     case CRONET_NET_ERROR_INVALID_HTTP_RESPONSE:
372       return "CRONET_NET_ERROR_INVALID_HTTP_RESPONSE";
373     case CRONET_NET_ERROR_CONTENT_DECODING_INIT_FAILED:
374       return "CRONET_NET_ERROR_CONTENT_DECODING_INIT_FAILED";
375     case CRONET_NET_ERROR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED:
376       return "CRONET_NET_ERROR_HTTP2_RST_STREAM_NO_ERROR_RECEIVED";
377     case CRONET_NET_ERROR_HTTP2_PUSHED_STREAM_NOT_AVAILABLE:
378       return "CRONET_NET_ERROR_HTTP2_PUSHED_STREAM_NOT_AVAILABLE";
379     case CRONET_NET_ERROR_HTTP2_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER:
380       return "CRONET_NET_ERROR_HTTP2_CLAIMED_PUSHED_STREAM_RESET_BY_SERVER";
381     case CRONET_NET_ERROR_TOO_MANY_RETRIES:
382       return "CRONET_NET_ERROR_TOO_MANY_RETRIES";
383     case CRONET_NET_ERROR_HTTP2_STREAM_CLOSED:
384       return "CRONET_NET_ERROR_HTTP2_STREAM_CLOSED";
385     case CRONET_NET_ERROR_HTTP2_CLIENT_REFUSED_STREAM:
386       return "CRONET_NET_ERROR_HTTP2_CLIENT_REFUSED_STREAM";
387     case CRONET_NET_ERROR_HTTP2_PUSHED_RESPONSE_DOES_NOT_MATCH:
388       return "CRONET_NET_ERROR_HTTP2_PUSHED_RESPONSE_DOES_NOT_MATCH";
389     case CRONET_NET_ERROR_HTTP_RESPONSE_CODE_FAILURE:
390       return "CRONET_NET_ERROR_HTTP_RESPONSE_CODE_FAILURE";
391     case CRONET_NET_ERROR_QUIC_CERT_ROOT_NOT_KNOWN:
392       return "CRONET_NET_ERROR_QUIC_CERT_ROOT_NOT_KNOWN";
393     case CRONET_NET_ERROR_CACHE_MISS:
394       return "CRONET_NET_ERROR_CACHE_MISS";
395     case CRONET_NET_ERROR_CACHE_READ_FAILURE:
396       return "CRONET_NET_ERROR_CACHE_READ_FAILURE";
397     case CRONET_NET_ERROR_CACHE_WRITE_FAILURE:
398       return "CRONET_NET_ERROR_CACHE_WRITE_FAILURE";
399     case CRONET_NET_ERROR_CACHE_OPERATION_NOT_SUPPORTED:
400       return "CRONET_NET_ERROR_CACHE_OPERATION_NOT_SUPPORTED";
401     case CRONET_NET_ERROR_CACHE_OPEN_FAILURE:
402       return "CRONET_NET_ERROR_CACHE_OPEN_FAILURE";
403     case CRONET_NET_ERROR_CACHE_CREATE_FAILURE:
404       return "CRONET_NET_ERROR_CACHE_CREATE_FAILURE";
405     case CRONET_NET_ERROR_CACHE_RACE:
406       return "CRONET_NET_ERROR_CACHE_RACE";
407     case CRONET_NET_ERROR_CACHE_CHECKSUM_READ_FAILURE:
408       return "CRONET_NET_ERROR_CACHE_CHECKSUM_READ_FAILURE";
409     case CRONET_NET_ERROR_CACHE_CHECKSUM_MISMATCH:
410       return "CRONET_NET_ERROR_CACHE_CHECKSUM_MISMATCH";
411     case CRONET_NET_ERROR_CACHE_LOCK_TIMEOUT:
412       return "CRONET_NET_ERROR_CACHE_LOCK_TIMEOUT";
413     case CRONET_NET_ERROR_CACHE_AUTH_FAILURE_AFTER_READ:
414       return "CRONET_NET_ERROR_CACHE_AUTH_FAILURE_AFTER_READ";
415     case CRONET_NET_ERROR_CACHE_ENTRY_NOT_SUITABLE:
416       return "CRONET_NET_ERROR_CACHE_ENTRY_NOT_SUITABLE";
417     case CRONET_NET_ERROR_CACHE_DOOM_FAILURE:
418       return "CRONET_NET_ERROR_CACHE_DOOM_FAILURE";
419     case CRONET_NET_ERROR_CACHE_OPEN_OR_CREATE_FAILURE:
420       return "CRONET_NET_ERROR_CACHE_OPEN_OR_CREATE_FAILURE";
421     case CRONET_NET_ERROR_INSECURE_RESPONSE:
422       return "CRONET_NET_ERROR_INSECURE_RESPONSE";
423     case CRONET_NET_ERROR_NO_PRIVATE_KEY_FOR_CERT:
424       return "CRONET_NET_ERROR_NO_PRIVATE_KEY_FOR_CERT";
425     case CRONET_NET_ERROR_ADD_USER_CERT_FAILED:
426       return "CRONET_NET_ERROR_ADD_USER_CERT_FAILED";
427     case CRONET_NET_ERROR_INVALID_SIGNED_EXCHANGE:
428       return "CRONET_NET_ERROR_INVALID_SIGNED_EXCHANGE";
429     case CRONET_NET_ERROR_INVALID_WEB_BUNDLE:
430       return "CRONET_NET_ERROR_INVALID_WEB_BUNDLE";
431     case CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_FAILED:
432       return "CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_FAILED";
433     case CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_CACHE_HIT:
434       return "CRONET_NET_ERROR_TRUST_TOKEN_OPERATION_CACHE_HIT";
435     case CRONET_NET_ERROR_FTP_FAILED:
436       return "CRONET_NET_ERROR_FTP_FAILED";
437     case CRONET_NET_ERROR_FTP_SERVICE_UNAVAILABLE:
438       return "CRONET_NET_ERROR_FTP_SERVICE_UNAVAILABLE";
439     case CRONET_NET_ERROR_FTP_TRANSFER_ABORTED:
440       return "CRONET_NET_ERROR_FTP_TRANSFER_ABORTED";
441     case CRONET_NET_ERROR_FTP_FILE_BUSY:
442       return "CRONET_NET_ERROR_FTP_FILE_BUSY";
443     case CRONET_NET_ERROR_FTP_SYNTAX_ERROR:
444       return "CRONET_NET_ERROR_FTP_SYNTAX_ERROR";
445     case CRONET_NET_ERROR_FTP_COMMAND_NOT_SUPPORTED:
446       return "CRONET_NET_ERROR_FTP_COMMAND_NOT_SUPPORTED";
447     case CRONET_NET_ERROR_FTP_BAD_COMMAND_SEQUENCE:
448       return "CRONET_NET_ERROR_FTP_BAD_COMMAND_SEQUENCE";
449     case CRONET_NET_ERROR_PKCS12_IMPORT_BAD_PASSWORD:
450       return "CRONET_NET_ERROR_PKCS12_IMPORT_BAD_PASSWORD";
451     case CRONET_NET_ERROR_PKCS12_IMPORT_FAILED:
452       return "CRONET_NET_ERROR_PKCS12_IMPORT_FAILED";
453     case CRONET_NET_ERROR_IMPORT_CA_CERT_NOT_CA:
454       return "CRONET_NET_ERROR_IMPORT_CA_CERT_NOT_CA";
455     case CRONET_NET_ERROR_IMPORT_CERT_ALREADY_EXISTS:
456       return "CRONET_NET_ERROR_IMPORT_CERT_ALREADY_EXISTS";
457     case CRONET_NET_ERROR_IMPORT_CA_CERT_FAILED:
458       return "CRONET_NET_ERROR_IMPORT_CA_CERT_FAILED";
459     case CRONET_NET_ERROR_IMPORT_SERVER_CERT_FAILED:
460       return "CRONET_NET_ERROR_IMPORT_SERVER_CERT_FAILED";
461     case CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_MAC:
462       return "CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_MAC";
463     case CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_FILE:
464       return "CRONET_NET_ERROR_PKCS12_IMPORT_INVALID_FILE";
465     case CRONET_NET_ERROR_PKCS12_IMPORT_UNSUPPORTED:
466       return "CRONET_NET_ERROR_PKCS12_IMPORT_UNSUPPORTED";
467     case CRONET_NET_ERROR_KEY_GENERATION_FAILED:
468       return "CRONET_NET_ERROR_KEY_GENERATION_FAILED";
469     case CRONET_NET_ERROR_PRIVATE_KEY_EXPORT_FAILED:
470       return "CRONET_NET_ERROR_PRIVATE_KEY_EXPORT_FAILED";
471     case CRONET_NET_ERROR_SELF_SIGNED_CERT_GENERATION_FAILED:
472       return "CRONET_NET_ERROR_SELF_SIGNED_CERT_GENERATION_FAILED";
473     case CRONET_NET_ERROR_CERT_DATABASE_CHANGED:
474       return "CRONET_NET_ERROR_CERT_DATABASE_CHANGED";
475     case CRONET_NET_ERROR_DNS_MALFORMED_RESPONSE:
476       return "CRONET_NET_ERROR_DNS_MALFORMED_RESPONSE";
477     case CRONET_NET_ERROR_DNS_SERVER_REQUIRES_TCP:
478       return "CRONET_NET_ERROR_DNS_SERVER_REQUIRES_TCP";
479     case CRONET_NET_ERROR_DNS_SERVER_FAILED:
480       return "CRONET_NET_ERROR_DNS_SERVER_FAILED";
481     case CRONET_NET_ERROR_DNS_TIMED_OUT:
482       return "CRONET_NET_ERROR_DNS_TIMED_OUT";
483     case CRONET_NET_ERROR_DNS_CACHE_MISS:
484       return "CRONET_NET_ERROR_DNS_CACHE_MISS";
485     case CRONET_NET_ERROR_DNS_SEARCH_EMPTY:
486       return "CRONET_NET_ERROR_DNS_SEARCH_EMPTY";
487     case CRONET_NET_ERROR_DNS_SORT_ERROR:
488       return "CRONET_NET_ERROR_DNS_SORT_ERROR";
489     case CRONET_NET_ERROR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED:
490       return "CRONET_NET_ERROR_DNS_SECURE_RESOLVER_HOSTNAME_RESOLUTION_FAILED";
491   }
492   return "UNAVAILABLE.";
493 }
494