Incorporate rosapps. 0.3.15 was branched somewhat incorrectly so rosapps is not synce...
[reactos.git] / modules / rosapps / applications / net / ncftp / sio / SError.c
1 #include "syshdrs.h"
2
3 #if defined(WIN32) || defined(_WINDOWS)
4
5 const char *wsaerrlist[128] = {
6 /* 0 */ "Unknown error #0",
7 /* 1 */ "Unknown error #1",
8 /* 2 */ "Unknown error #2",
9 /* 3 */ "Unknown error #3",
10 /* 4 */ "Interrupted system call",
11 /* 5 */ "Unknown error #5",
12 /* 6 */ "Unknown error #6",
13 /* 7 */ "Unknown error #7",
14 /* 8 */ "Unknown error #8",
15 /* 9 */ "Bad file descriptor",
16 /* 10 */ "Unknown error #10",
17 /* 11 */ "Unknown error #11",
18 /* 12 */ "Unknown error #12",
19 /* 13 */ "Permission denied",
20 /* 14 */ "Bad address",
21 /* 15 */ "Unknown error #15",
22 /* 16 */ "Unknown error #16",
23 /* 17 */ "Unknown error #17",
24 /* 18 */ "Unknown error #18",
25 /* 19 */ "Unknown error #19",
26 /* 20 */ "Unknown error #20",
27 /* 21 */ "Unknown error #21",
28 /* 22 */ "Invalid argument",
29 /* 23 */ "Unknown error #23",
30 /* 24 */ "Too many open files",
31 /* 25 */ "Unknown error #25",
32 /* 26 */ "Unknown error #26",
33 /* 27 */ "Unknown error #27",
34 /* 28 */ "Unknown error #28",
35 /* 29 */ "Unknown error #29",
36 /* 30 */ "Unknown error #30",
37 /* 31 */ "Unknown error #31",
38 /* 32 */ "Unknown error #32",
39 /* 33 */ "Unknown error #33",
40 /* 34 */ "Unknown error #34",
41 /* 35 */ "Resource temporarily unavailable",
42 /* 36 */ "Operation now in progress",
43 /* 37 */ "Operation already in progress",
44 /* 38 */ "Socket operation on non-socket",
45 /* 39 */ "Destination address required",
46 /* 40 */ "Message too long",
47 /* 41 */ "Protocol wrong type for socket",
48 /* 42 */ "Protocol not available",
49 /* 43 */ "Protocol not supported",
50 /* 44 */ "Socket type not supported",
51 /* 45 */ "Operation not supported",
52 /* 46 */ "Protocol family not supported",
53 /* 47 */ "Address family not supported by protocol",
54 /* 48 */ "Address already in use",
55 /* 49 */ "Cannot assign requested address",
56 /* 50 */ "Network is down",
57 /* 51 */ "Network is unreachable",
58 /* 52 */ "Network dropped connection on reset",
59 /* 53 */ "Software caused connection abort",
60 /* 54 */ "Connection reset by peer",
61 /* 55 */ "No buffer space available",
62 /* 56 */ "Transport endpoint is already connected",
63 /* 57 */ "Transport endpoint is not connected",
64 /* 58 */ "Cannot send after transport endpoint shutdown",
65 /* 59 */ "Too many references: cannot splice",
66 /* 60 */ "Connection timed out",
67 /* 61 */ "Connection refused",
68 /* 62 */ "Too many levels of symbolic links",
69 /* 63 */ "File name too long",
70 /* 64 */ "Host is down",
71 /* 65 */ "No route to host",
72 /* 66 */ "Directory not empty",
73 /* 67 */ "WSAEPROCLIM error",
74 /* 68 */ "Too many users",
75 /* 69 */ "Disc quota exceeded",
76 /* 70 */ "Stale NFS file handle",
77 /* 71 */ "Object is remote",
78 /* 72 */ "Unknown error #72",
79 /* 73 */ "Unknown error #73",
80 /* 74 */ "Unknown error #74",
81 /* 75 */ "Unknown error #75",
82 /* 76 */ "Unknown error #76",
83 /* 77 */ "Unknown error #77",
84 /* 78 */ "Unknown error #78",
85 /* 79 */ "Unknown error #79",
86 /* 80 */ "Unknown error #80",
87 /* 81 */ "Unknown error #81",
88 /* 82 */ "Unknown error #82",
89 /* 83 */ "Unknown error #83",
90 /* 84 */ "Unknown error #84",
91 /* 85 */ "Unknown error #85",
92 /* 86 */ "Unknown error #86",
93 /* 87 */ "Unknown error #87",
94 /* 88 */ "Unknown error #88",
95 /* 89 */ "Unknown error #89",
96 /* 90 */ "Unknown error #90",
97 /* 91 */ "WSASYSNOTREADY error",
98 /* 92 */ "Version not supported",
99 /* 93 */ "Winsock not initialised",
100 /* 94 */ "Unknown error #94",
101 /* 95 */ "Unknown error #95",
102 /* 96 */ "Unknown error #96",
103 /* 97 */ "Unknown error #97",
104 /* 98 */ "Unknown error #98",
105 /* 99 */ "Unknown error #99",
106 /* 100 */ "Unknown error #100",
107 /* 101 */ "WSAEDISCON error",
108 /* 102 */ "Unknown error #102",
109 /* 103 */ "Unknown error #103",
110 /* 104 */ "Unknown error #104",
111 /* 105 */ "Unknown error #105",
112 /* 106 */ "Unknown error #106",
113 /* 107 */ "Unknown error #107",
114 /* 108 */ "Unknown error #108",
115 /* 109 */ "Unknown error #109",
116 /* 110 */ "Unknown error #110",
117 /* 111 */ "Unknown error #111",
118 /* 112 */ "Unknown error #112",
119 /* 113 */ "Unknown error #113",
120 /* 114 */ "Unknown error #114",
121 /* 115 */ "Unknown error #115",
122 /* 116 */ "Unknown error #116",
123 /* 117 */ "Unknown error #117",
124 /* 118 */ "Unknown error #118",
125 /* 119 */ "Unknown error #119",
126 /* 120 */ "Unknown error #120",
127 /* 121 */ "Unknown error #121",
128 /* 122 */ "Unknown error #122",
129 /* 123 */ "Unknown error #123",
130 /* 124 */ "Unknown error #124",
131 /* 125 */ "Unknown error #125",
132 /* 126 */ "Unknown error #126",
133 /* 127 */ "Unknown error #127",
134 };
135
136 #endif /* Windows */
137
138
139
140 const char *
141 SError(int e)
142 {
143 #if defined(WIN32) || defined(_WINDOWS)
144 const char *cp;
145 static char estr[32];
146
147 if (e == 0)
148 e = WSAGetLastError();
149
150 if ((e >= WSABASEERR) && (e < (WSABASEERR + (sizeof(wsaerrlist) / sizeof(const char *))))) {
151 return wsaerrlist[e - WSABASEERR];
152 }
153
154 cp = strerror(e);
155 if ((cp == NULL) || (cp[0] == '\0') || (strcmp(cp, "Unknown error") == 0)) {
156 wsprintf(estr, "Error #%d", e);
157 cp = estr;
158 }
159 return cp;
160 #elif defined(HAVE_STRERROR)
161 if (e == 0)
162 e = errno;
163 return strerror(e);
164 #else
165 static char estr[32];
166 if (e == 0)
167 e = errno;
168 sprintf(estr, "Error #%d", e);
169 return (estr);
170 #endif
171 } /* SError */