aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_errno.h
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2010-03-12 11:15:26 +0000
committerIgor Sysoev <igor@sysoev.ru>2010-03-12 11:15:26 +0000
commit9eaabc69ca4401b0a1fbfd27c2265213ab656ff4 (patch)
tree6ef9689e485f07ba958e181607a12bfc7c26285f /src/os/unix/ngx_errno.h
parent7fa1c07896a6ec184e665d4f86e7678fa88fef59 (diff)
downloadnginx-9eaabc69ca4401b0a1fbfd27c2265213ab656ff4.tar.gz
nginx-9eaabc69ca4401b0a1fbfd27c2265213ab656ff4.zip
use sys_errlist[] in signal handler instead
of non Async-Signal-Safe strerror_r()
Diffstat (limited to 'src/os/unix/ngx_errno.h')
-rw-r--r--src/os/unix/ngx_errno.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h
index 379f36777..ddc2b2761 100644
--- a/src/os/unix/ngx_errno.h
+++ b/src/os/unix/ngx_errno.h
@@ -64,10 +64,22 @@ u_char *ngx_strerror_r(int err, u_char *errstr, size_t size);
/* Solaris and Tru64 UNIX have thread-safe strerror() */
-#define ngx_strerror_r(err, errstr, size) \
+#define ngx_strerror_r(err, errstr, size) \
ngx_cpystrn(errstr, (u_char *) strerror(err), size)
#endif
+#if (NGX_HAVE_SYS_ERRLIST)
+
+#define ngx_sigsafe_strerror(err) \
+ (err > 0 && err < sys_nerr) ? sys_errlist[err] : "Unknown error"
+
+#else
+
+#define ngx_sigsafe_strerror(err) ""
+
+#endif
+
+
#endif /* _NGX_ERRNO_H_INCLUDED_ */