One Level Up
Top Level
src/os/unix/ngx_errno.c - nginx-1.7.10
Global variables defined
Functions defined
Source code
- #include <ngx_config.h>
- #include <ngx_core.h>
- static ngx_str_t *ngx_sys_errlist;
- static ngx_str_t ngx_unknown_error = ngx_string("Unknown error");
- u_char *
- ngx_strerror(ngx_err_t err, u_char *errstr, size_t size)
- {
- ngx_str_t *msg;
- msg = ((ngx_uint_t) err < NGX_SYS_NERR) ? &ngx_sys_errlist[err]:
- &ngx_unknown_error;
- size = ngx_min(size, msg->len);
- return ngx_cpymem(errstr, msg->data, size);
- }
- ngx_int_t
- ngx_strerror_init(void)
- {
- char *msg;
- u_char *p;
- size_t len;
- ngx_err_t err;
-
- len = NGX_SYS_NERR * sizeof(ngx_str_t);
- ngx_sys_errlist = malloc(len);
- if (ngx_sys_errlist == NULL) {
- goto failed;
- }
- for (err = 0; err < NGX_SYS_NERR; err++) {
- msg = strerror(err);
- len = ngx_strlen(msg);
- p = malloc(len);
- if (p == NULL) {
- goto failed;
- }
- ngx_memcpy(p, msg, len);
- ngx_sys_errlist[err].len = len;
- ngx_sys_errlist[err].data = p;
- }
- return NGX_OK;
- failed:
- err = errno;
- ngx_log_stderr(0, "malloc(%uz) failed (%d: %s)", len, err, strerror(err));
- return NGX_ERROR;
- }
One Level Up
Top Level