diff src/os/unix/ngx_errno.c @ 256:8e39cab6abd5

nginx-0.0.2-2004-02-10-19:23:38 import
author Igor Sysoev <igor@sysoev.ru>
date Tue, 10 Feb 2004 16:23:38 +0000
parents fd9fecc4193f
children 4b1a3a4acc60
line wrap: on
line diff
--- a/src/os/unix/ngx_errno.c
+++ b/src/os/unix/ngx_errno.c
@@ -25,4 +25,34 @@ ngx_int_t ngx_strerror_r(int err, char *
     return len;
 }
 
+#elif (HAVE_GNU_STRERROR_R)
+
+/* Linux strerror_r() */
+
+ngx_int_t ngx_strerror_r(int err, char *errstr, size_t size)
+{
+    char    *str;
+    size_t   len;
+
+    if (size == 0) {
+        return 0;
+    }
+
+    errstr[0] = '\0';
+
+    str = strerror_r(err, errstr, size);
+
+    if (str != errstr) {
+        return ngx_cpystrn(errstr, str, size) - errstr;
+    }
+
+    for (len = 0; len < size; len++) {
+        if (errstr[len] == '\0') {
+            break;
+        }
+    }
+
+    return len;
+}
+
 #endif