Mercurial > hg > nginx
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