diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-12-03 13:05:19 +0300 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2007-12-03 13:05:19 +0300 |
commit | 6b2fce430b4cdb063b5b4e5382515d384c90272b (patch) | |
tree | b96e96db97ccb66acfc5aba3a4e1734df1c0b39d /src/core | |
parent | 26aae392f9fd35c840bf8e400b7f4defacf181ab (diff) |
allow to use IP addresses without defined resolver
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/ngx_resolver.c | 28 | ||||
-rw-r--r-- | src/core/ngx_resolver.h | 3 |
2 files changed, 20 insertions, 11 deletions
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c index 045ded702..94d729c58 100644 --- a/src/core/ngx_resolver.c +++ b/src/core/ngx_resolver.c @@ -99,11 +99,6 @@ ngx_resolver_create(ngx_peer_addr_t *addr, ngx_log_t *log) return NULL; } - uc = ngx_calloc(sizeof(ngx_udp_connection_t), log); - if (uc == NULL) { - return NULL; - } - r->event = ngx_calloc(sizeof(ngx_event_t), log); if (r->event == NULL) { return NULL; @@ -138,8 +133,6 @@ ngx_resolver_create(ngx_peer_addr_t *addr, ngx_log_t *log) r->event->log = log; r->ident = -1; - r->udp_connection = uc; - r->resend_timeout = 5; r->expire = 30; r->valid = 300; @@ -147,10 +140,19 @@ ngx_resolver_create(ngx_peer_addr_t *addr, ngx_log_t *log) r->log = log; r->log_level = NGX_LOG_ALERT; - uc->sockaddr = addr->sockaddr; - uc->socklen = addr->socklen; - uc->server = addr->name; - uc->log = log; + if (addr) { + uc = ngx_calloc(sizeof(ngx_udp_connection_t), log); + if (uc == NULL) { + return NULL; + } + + r->udp_connection = uc; + + uc->sockaddr = addr->sockaddr; + uc->socklen = addr->socklen; + uc->server = addr->name; + uc->log = log; + } return r; } @@ -177,6 +179,10 @@ ngx_resolve_start(ngx_resolver_t *r, ngx_resolver_ctx_t *temp) } } + if (r->udp_connection == NULL) { + return NGX_NO_RESOLVER; + } + ctx = ngx_resolver_calloc(r, sizeof(ngx_resolver_ctx_t)); if (ctx) { diff --git a/src/core/ngx_resolver.h b/src/core/ngx_resolver.h index e69f42087..b1b8ede2c 100644 --- a/src/core/ngx_resolver.h +++ b/src/core/ngx_resolver.h @@ -26,6 +26,9 @@ #define NGX_RESOLVE_TIMEDOUT NGX_ETIMEDOUT +#define NGX_NO_RESOLVER (void *) -1 + + typedef struct { ngx_connection_t *connection; struct sockaddr *sockaddr; |