16 #include "error_utils.h"
17 #include "config_express.h"
22 #if defined(WIN32_VC) || defined(WIN64_VC)
30 string error_to_text(ErrorUtilCode err) {
31 const char *errmsg =
"Unknown error";
34 case EU_http_redirect:
35 errmsg =
"EU_http_redirect";
40 case EU_network_no_data:
41 errmsg =
"EU_network_no_data";
50 errmsg =
"EU_success";
53 errmsg =
"EU_error_abort";
55 case EU_error_file_empty:
56 errmsg =
"EU_error_file_empty";
58 case EU_error_file_invalid:
59 errmsg =
"EU_error_file_invalid";
61 case EU_error_invalid_checksum:
62 errmsg =
"EU_error_invalid_checksum";
64 case EU_error_network_dead:
65 errmsg =
"EU_error_network_dead";
67 case EU_error_network_unreachable:
68 errmsg =
"EU_error_network_unreachable";
70 case EU_error_network_disconnected:
71 errmsg =
"EU_error_network_disconnected";
73 case EU_error_network_timeout:
74 errmsg =
"EU_error_network_timeout";
76 case EU_error_network_no_data:
77 errmsg =
"EU_error_network_no_data";
79 case EU_error_network_disconnected_locally:
80 errmsg =
"EU_error_network_disconnected_locally";
82 case EU_error_network_buffer_overflow:
83 errmsg =
"EU_error_network_buffer_overflow";
85 case EU_error_network_disk_quota_exceeded:
86 errmsg =
"EU_error_network_disk_quota_exceeded";
88 case EU_error_network_remote_host_disconnected:
89 errmsg =
"EU_error_network_remote_host_disconnected";
91 case EU_error_network_remote_host_down:
92 errmsg =
"EU_error_network_remote_host_down";
94 case EU_error_network_remote_host_unreachable:
95 errmsg =
"EU_error_network_remote_host_unreachable";
97 case EU_error_network_remote_host_not_found:
98 errmsg =
"EU_error_network_remote_host_not_found";
100 case EU_error_network_remote_host_no_response:
101 errmsg =
"EU_error_network_remote_host_no_response";
103 case EU_error_write_out_of_files:
104 errmsg =
"EU_error_write_out_of_files";
106 case EU_error_write_out_of_memory:
107 errmsg =
"EU_error_write_out_of_memory";
109 case EU_error_write_sharing_violation:
110 errmsg =
"EU_error_write_sharing_violation";
112 case EU_error_write_disk_full:
113 errmsg =
"EU_error_write_disk_full";
115 case EU_error_write_disk_not_found:
116 errmsg =
"EU_error_write_disk_not_found";
118 case EU_error_write_disk_sector_not_found:
119 errmsg =
"EU_error_write_disk_sector_not_found";
121 case EU_error_write_disk_fault:
122 errmsg =
"EU_error_write_disk_fault";
124 case EU_error_write_file_rename:
125 errmsg =
"EU_error_write_file_rename";
127 case EU_error_http_server_timeout:
128 errmsg =
"EU_error_http_server_timeout";
130 case EU_error_http_gateway_timeout:
131 errmsg =
"EU_error_http_gateway_timeout";
133 case EU_error_http_service_unavailable:
134 errmsg =
"EU_error_http_service_unavailable";
136 case EU_error_http_proxy_authentication:
137 errmsg =
"EU_error_http_proxy_authentication";
140 errmsg =
"EU_error_zlib";
143 errmsg =
"EU_write_ram";
148 sprintf(msgbuf,
"%d: %s",err,errmsg);
149 return string(msgbuf);
158 #if !defined(WIN32) && !defined(WIN64)
159 return EU_error_abort;
164 return EU_error_write_out_of_files;
167 return EU_error_write_out_of_memory;
169 return EU_error_write_disk_not_found;
172 return EU_error_write_disk_sector_not_found;
176 return EU_error_write_disk_fault;
180 return EU_error_write_sharing_violation;
182 return EU_error_write_disk_full;
184 return EU_error_abort;
194 string handle_socket_error() {
195 #if !defined(WIN32) && !defined(WIN64)
196 return string(strerror(errno));
198 int err = WSAGetLastError();
202 errmsg =
"An invalid argument was supplied";
204 errmsg =
"A blocking operation is currently executing";
206 errmsg =
"Message was larger than internal buffer or network limit";
208 errmsg =
"Network dead";
210 errmsg =
"Network unreachable";
212 errmsg =
"Connection broken because keep-alive detected a failure";
214 errmsg =
"Connection aborted by local host software";
216 errmsg =
"Connection closed by remote host";
218 errmsg =
"Out of buffer space or queue overflowed";
220 errmsg =
"Socket was not connected";
222 errmsg =
"Socket was previously shut down";
224 errmsg =
"Connection timed out";
226 errmsg =
"Connection refused by remote host";
228 errmsg =
"Remote host is down";
230 errmsg =
"Remote host is unreachable";
232 errmsg =
"WSAStartup() was not called";
234 errmsg = strerror(errno);
236 if (express_cat.is_debug())
237 express_cat.debug() <<
"handle_socket_error - unknown error: " << err << endl;
238 errmsg =
"Unknown WSA error";
242 sprintf(msgbuf,
"WSA errno %d, errno %d: %s",err,errno,errmsg);
243 return string(msgbuf);
254 get_network_error() {
255 #if !defined(WIN32) && !defined(WIN64)
256 return EU_error_abort;
258 int err = WSAGetLastError();
261 return EU_error_network_dead;
263 return EU_error_network_unreachable;
267 return EU_error_network_disconnected;
269 return EU_error_network_disconnected_locally;
272 return EU_error_network_remote_host_disconnected;
274 return EU_error_network_buffer_overflow;
276 return EU_error_network_timeout;
278 return EU_error_network_remote_host_down;
280 return EU_error_network_remote_host_unreachable;
282 return EU_error_network_disk_quota_exceeded;
284 return EU_error_network_remote_host_not_found;
286 return EU_error_network_remote_host_no_response;
288 if (express_cat.is_debug())
290 <<
"get_network_error() - WSA error = 0 - error : "
291 << strerror(errno) << endl;
292 return EU_error_abort;
294 if (express_cat.is_debug())
296 <<
"get_network_error() - unknown error: " << err << endl;
297 return EU_error_abort;