nginx-0.0.1-2003-06-11-19:28:34 import
diff --git a/src/os/win32/ngx_errno.c b/src/os/win32/ngx_errno.c
index d0cff7b..30c1b93 100644
--- a/src/os/win32/ngx_errno.c
+++ b/src/os/win32/ngx_errno.c
@@ -9,9 +9,29 @@
#include <ngx_core.h>
+ngx_str_t wsa_errors[] = {
+ ngx_string("Invalid argument"), /* 10022 */
+ ngx_null_string, /* 10023 */
+ ngx_null_string, /* 10024 */
+ ngx_null_string, /* 10025 */
+ ngx_null_string, /* 10026 */
+ ngx_null_string, /* 10027 */
+ ngx_null_string, /* 10028 */
+ ngx_null_string, /* 10029 */
+ ngx_null_string, /* 10030 */
+ ngx_null_string, /* 10031 */
+ ngx_null_string, /* 10032 */
+ ngx_null_string, /* 10033 */
+ ngx_null_string, /* 10034 */
+ ngx_string("Resource temporarily unavailable") /* 10035 */
+};
+
+
int ngx_strerror_r(ngx_err_t err, char *errstr, size_t size)
{
- int len;
+ int n;
+ u_int len;
+ ngx_err_t format_error;
len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
| FORMAT_MESSAGE_IGNORE_INSERTS,
@@ -19,12 +39,28 @@
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
errstr, size, NULL);
- /* add WSA error messages */
-
if (len == 0) {
+ format_error = GetLastError();
+
+ if (format_error == ERROR_MR_MID_NOT_FOUND) {
+ n = err - WSABASEERR - 22;
+
+ if (n >= 0 && n < 14) {
+ len = wsa_errors[n].len;
+
+ if (len) {
+ if (len > size) {
+ len = size;
+ }
+
+ ngx_memcpy(errstr, wsa_errors[n].data, len);
+ return len;
+ }
+ }
+ }
len = ngx_snprintf(errstr, size,
- "FormatMessage error:(%d)", GetLastError());
+ "FormatMessage() error:(%d)", format_error);
return len;
}