diff src/os/win32/ngx_errno.c @ 0:4eff17414a43

nginx-0.0.1-2002-08-06-20:39:45 import The first code that uses "ngx_" prefix, the previous one used "gx_" prefix. At that point the code is not yet usable. The first draft ideas are dated back to 23.10.2001.
author Igor Sysoev <igor@sysoev.ru>
date Tue, 06 Aug 2002 16:39:45 +0000
parents
children c9b243802a17
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/os/win32/ngx_errno.c
@@ -0,0 +1,38 @@
+
+/*
+   TODO:
+     add WSA error messages
+     test for English only messages
+*/
+
+#include <ngx_config.h>
+#include <ngx_string.h>
+#include <ngx_errno.h>
+
+int ngx_strerror_r(ngx_err_t err, char *errstr, size_t size)
+{
+    int len;
+
+    len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
+                        | FORMAT_MESSAGE_IGNORE_INSERTS,
+                        NULL, err,
+                        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
+                        errstr, size, NULL);
+
+    /* add WSA error messages */
+
+    if (len == 0) {
+
+        len = ngx_snprintf(errstr, size,
+                           "FormatMessage error:(%d)", GetLastError());
+        return len;
+
+    }
+
+    /* remove ".\r\n\0" */
+    while (errstr[len] == '\0' || errstr[len] == CR
+           || errstr[len] == LF || errstr[len] == '.')
+        --len;
+
+    return ++len;
+}