|
|
@@ -12,60 +12,6 @@
|
|
|
#include <winsock.h>
|
|
|
#endif
|
|
|
|
|
|
-////////////////////////////////////////////////////////////////////
|
|
|
-// Function: handle_socket_error
|
|
|
-// Description:
|
|
|
-////////////////////////////////////////////////////////////////////
|
|
|
-const char*
|
|
|
-handle_socket_error(void) {
|
|
|
-#ifndef WIN32
|
|
|
- return strerror(errno);
|
|
|
-#else
|
|
|
- int err = WSAGetLastError();
|
|
|
- switch (err) {
|
|
|
- case 10022:
|
|
|
- return "An invalid argument was supplied";
|
|
|
- case 10036:
|
|
|
- return "A blocking operation is currently executing";
|
|
|
- case 10040:
|
|
|
- return "Message was larger than internal buffer or network limit";
|
|
|
- case 10050:
|
|
|
- return "Network dead";
|
|
|
- case 10051:
|
|
|
- return "Network unreachable";
|
|
|
- case 10052:
|
|
|
- return "Connection broken because keep-alive detected a failure";
|
|
|
- case 10053:
|
|
|
- return "Connection aborted by local host software";
|
|
|
- case 10054:
|
|
|
- return "Connection closed by remote host";
|
|
|
- case 10055:
|
|
|
- return "Out of buffer space or queue overflowed";
|
|
|
- case 10057:
|
|
|
- return "Socket was not connected";
|
|
|
- case 10058:
|
|
|
- return "Socket was previously shut down";
|
|
|
- case 10060:
|
|
|
- return "Connection timed out";
|
|
|
- case 10061:
|
|
|
- return "Connection refused by remote host";
|
|
|
- case 10064:
|
|
|
- return "Remote host is down";
|
|
|
- case 10065:
|
|
|
- return "Remote host is unreachable";
|
|
|
- case 10093:
|
|
|
- return "WSAStartup() was not called";
|
|
|
- case 0:
|
|
|
- return strerror(errno);
|
|
|
- default:
|
|
|
- if (express_cat.is_debug())
|
|
|
- express_cat.debug()
|
|
|
- << "handle_socket_error - unknown error: " << err << endl;
|
|
|
- return "Unknown WSA error";
|
|
|
- }
|
|
|
-#endif
|
|
|
-}
|
|
|
-
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: error_to_text
|
|
|
// Description:
|
|
|
@@ -146,6 +92,100 @@ error_to_text(int err) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: get_write_error
|
|
|
+// Description:
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+int
|
|
|
+get_write_error(void) {
|
|
|
+#ifndef WIN32
|
|
|
+ return EU_error_abort;
|
|
|
+#else
|
|
|
+ switch (errno) {
|
|
|
+ case 4:
|
|
|
+ case 18:
|
|
|
+ return EU_error_write_out_of_files;
|
|
|
+ case 8:
|
|
|
+ case 14:
|
|
|
+ return EU_error_write_out_of_memory;
|
|
|
+ case 20:
|
|
|
+ return EU_error_write_disk_not_found;
|
|
|
+ case 25:
|
|
|
+ case 27:
|
|
|
+ return EU_error_write_disk_sector_not_found;
|
|
|
+ case 29:
|
|
|
+ case 30:
|
|
|
+ case 31:
|
|
|
+ return EU_error_write_disk_fault;
|
|
|
+ case 32:
|
|
|
+ case 33:
|
|
|
+ case 36:
|
|
|
+ return EU_error_write_sharing_violation;
|
|
|
+ case 39:
|
|
|
+ return EU_error_write_disk_full;
|
|
|
+ default:
|
|
|
+ return EU_error_abort;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
+#ifdef HAVE_NET
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+// Function: handle_socket_error
|
|
|
+// Description:
|
|
|
+////////////////////////////////////////////////////////////////////
|
|
|
+const char*
|
|
|
+handle_socket_error(void) {
|
|
|
+#ifndef WIN32
|
|
|
+ return strerror(errno);
|
|
|
+#else
|
|
|
+ int err = WSAGetLastError();
|
|
|
+ switch (err) {
|
|
|
+ case 10022:
|
|
|
+ return "An invalid argument was supplied";
|
|
|
+ case 10036:
|
|
|
+ return "A blocking operation is currently executing";
|
|
|
+ case 10040:
|
|
|
+ return "Message was larger than internal buffer or network limit";
|
|
|
+ case 10050:
|
|
|
+ return "Network dead";
|
|
|
+ case 10051:
|
|
|
+ return "Network unreachable";
|
|
|
+ case 10052:
|
|
|
+ return "Connection broken because keep-alive detected a failure";
|
|
|
+ case 10053:
|
|
|
+ return "Connection aborted by local host software";
|
|
|
+ case 10054:
|
|
|
+ return "Connection closed by remote host";
|
|
|
+ case 10055:
|
|
|
+ return "Out of buffer space or queue overflowed";
|
|
|
+ case 10057:
|
|
|
+ return "Socket was not connected";
|
|
|
+ case 10058:
|
|
|
+ return "Socket was previously shut down";
|
|
|
+ case 10060:
|
|
|
+ return "Connection timed out";
|
|
|
+ case 10061:
|
|
|
+ return "Connection refused by remote host";
|
|
|
+ case 10064:
|
|
|
+ return "Remote host is down";
|
|
|
+ case 10065:
|
|
|
+ return "Remote host is unreachable";
|
|
|
+ case 10093:
|
|
|
+ return "WSAStartup() was not called";
|
|
|
+ case 0:
|
|
|
+ return strerror(errno);
|
|
|
+ default:
|
|
|
+ if (express_cat.is_debug())
|
|
|
+ express_cat.debug()
|
|
|
+ << "handle_socket_error - unknown error: " << err << endl;
|
|
|
+ return "Unknown WSA error";
|
|
|
+ }
|
|
|
+#endif
|
|
|
+}
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef HAVE_NET
|
|
|
////////////////////////////////////////////////////////////////////
|
|
|
// Function: get_network_error
|
|
|
// Description:
|
|
|
@@ -198,40 +238,4 @@ get_network_error(void) {
|
|
|
}
|
|
|
#endif
|
|
|
}
|
|
|
-
|
|
|
-////////////////////////////////////////////////////////////////////
|
|
|
-// Function: get_write_error
|
|
|
-// Description:
|
|
|
-////////////////////////////////////////////////////////////////////
|
|
|
-int
|
|
|
-get_write_error(void) {
|
|
|
-#ifndef WIN32
|
|
|
- return EU_error_abort;
|
|
|
-#else
|
|
|
- switch (errno) {
|
|
|
- case 4:
|
|
|
- case 18:
|
|
|
- return EU_error_write_out_of_files;
|
|
|
- case 8:
|
|
|
- case 14:
|
|
|
- return EU_error_write_out_of_memory;
|
|
|
- case 20:
|
|
|
- return EU_error_write_disk_not_found;
|
|
|
- case 25:
|
|
|
- case 27:
|
|
|
- return EU_error_write_disk_sector_not_found;
|
|
|
- case 29:
|
|
|
- case 30:
|
|
|
- case 31:
|
|
|
- return EU_error_write_disk_fault;
|
|
|
- case 32:
|
|
|
- case 33:
|
|
|
- case 36:
|
|
|
- return EU_error_write_sharing_violation;
|
|
|
- case 39:
|
|
|
- return EU_error_write_disk_full;
|
|
|
- default:
|
|
|
- return EU_error_abort;
|
|
|
- }
|
|
|
#endif
|
|
|
-}
|