diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2007-12-03 10:05:19 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2007-12-03 10:05:19 +0000 |
| commit | 6b2fce430b4cdb063b5b4e5382515d384c90272b (patch) | |
| tree | b96e96db97ccb66acfc5aba3a4e1734df1c0b39d /src/core/ngx_resolver.c | |
| parent | 26aae392f9fd35c840bf8e400b7f4defacf181ab (diff) | |
| download | nginx-6b2fce430b4cdb063b5b4e5382515d384c90272b.tar.gz nginx-6b2fce430b4cdb063b5b4e5382515d384c90272b.tar.bz2 | |
allow to use IP addresses without defined resolver
Diffstat (limited to 'src/core/ngx_resolver.c')
| -rw-r--r-- | src/core/ngx_resolver.c | 28 |
1 files changed, 17 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) { |
