mirror of
https://github.com/nginx/nginx.git
synced 2025-01-10 12:08:29 +08:00
62 lines
854 B
C
62 lines
854 B
C
|
|
/*
|
|
* Copyright (C) Igor Sysoev
|
|
*/
|
|
|
|
|
|
#include <ngx_config.h>
|
|
#include <ngx_core.h>
|
|
|
|
|
|
#if (NGX_HAVE_STRERROR_R)
|
|
|
|
u_char *
|
|
ngx_strerror_r(int err, u_char *errstr, size_t size)
|
|
{
|
|
if (size == 0) {
|
|
return errstr;
|
|
}
|
|
|
|
errstr[0] = '\0';
|
|
|
|
strerror_r(err, (char *) errstr, size);
|
|
|
|
while (*errstr && size) {
|
|
errstr++;
|
|
size--;
|
|
}
|
|
|
|
return errstr;
|
|
}
|
|
|
|
#elif (NGX_HAVE_GNU_STRERROR_R)
|
|
|
|
/* Linux strerror_r() */
|
|
|
|
u_char *
|
|
ngx_strerror_r(int err, u_char *errstr, size_t size)
|
|
{
|
|
char *str;
|
|
|
|
if (size == 0) {
|
|
return errstr;
|
|
}
|
|
|
|
errstr[0] = '\0';
|
|
|
|
str = strerror_r(err, (char *) errstr, size);
|
|
|
|
if (str != (char *) errstr) {
|
|
return ngx_cpystrn(errstr, (u_char *) str, size);
|
|
}
|
|
|
|
while (*errstr && size) {
|
|
errstr++;
|
|
size--;
|
|
}
|
|
|
|
return errstr;
|
|
}
|
|
|
|
#endif
|