Mercurial > hg > nginx
view src/os/unix/ngx_errno.h @ 4723:68ac485abbba stable-1.2
Merge of r4654, r4672, r4684, r4685, r4692: resolver changes.
*) Resolver: fixed format specification.
Patch by Yichun Zhang (agentzh).
*) Support for IPv6 literals and an optional port in resolver.
*) Fixed crash in ngx_resolver_cleanup_tree().
If sending a DNS request fails with an error (e.g., when mistakenly
trying to send it to a local IP broadcast), such a request is not
deleted if there are clients waiting on it. However, it was still
erroneously removed from the queue. Later ngx_resolver_cleanup_tree()
attempted to remove it from the queue again that resulted in a NULL
pointer dereference.
*) When "resolver" is configured with a domain name, only the first
resolved address was used. Now all addresses will be used.
*) Fixed segfault with poll and resolver used.
Poll event method needs ngx_cycle->files to work, and use of
ngx_exit_cycle without files set caused null pointer dereference in
resolver's cleanup on udp socket close.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 02 Jul 2012 16:23:14 +0000 |
parents | 25611746fee7 |
children | f1a0de6eb505 |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_ERRNO_H_INCLUDED_ #define _NGX_ERRNO_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> typedef int ngx_err_t; #define NGX_EPERM EPERM #define NGX_ENOENT ENOENT #define NGX_ENOPATH ENOENT #define NGX_ESRCH ESRCH #define NGX_EINTR EINTR #define NGX_ECHILD ECHILD #define NGX_ENOMEM ENOMEM #define NGX_EACCES EACCES #define NGX_EBUSY EBUSY #define NGX_EEXIST EEXIST #define NGX_EXDEV EXDEV #define NGX_ENOTDIR ENOTDIR #define NGX_EISDIR EISDIR #define NGX_EINVAL EINVAL #define NGX_ENFILE ENFILE #define NGX_EMFILE EMFILE #define NGX_ENOSPC ENOSPC #define NGX_EPIPE EPIPE #define NGX_EINPROGRESS EINPROGRESS #define NGX_EADDRINUSE EADDRINUSE #define NGX_ECONNABORTED ECONNABORTED #define NGX_ECONNRESET ECONNRESET #define NGX_ENOTCONN ENOTCONN #define NGX_ETIMEDOUT ETIMEDOUT #define NGX_ECONNREFUSED ECONNREFUSED #define NGX_ENAMETOOLONG ENAMETOOLONG #define NGX_ENETDOWN ENETDOWN #define NGX_ENETUNREACH ENETUNREACH #define NGX_EHOSTDOWN EHOSTDOWN #define NGX_EHOSTUNREACH EHOSTUNREACH #define NGX_ENOSYS ENOSYS #define NGX_ECANCELED ECANCELED #define NGX_EILSEQ EILSEQ #define NGX_ENOMOREFILES 0 #if (NGX_HAVE_OPENAT) #define NGX_EMLINK EMLINK #define NGX_ELOOP ELOOP #endif #if (__hpux__) #define NGX_EAGAIN EWOULDBLOCK #else #define NGX_EAGAIN EAGAIN #endif #define ngx_errno errno #define ngx_socket_errno errno #define ngx_set_errno(err) errno = err #define ngx_set_socket_errno(err) errno = err u_char *ngx_strerror(ngx_err_t err, u_char *errstr, size_t size); ngx_uint_t ngx_strerror_init(void); #endif /* _NGX_ERRNO_H_INCLUDED_ */