comparison src/core/ngx_resolver.c @ 1683:1e0b028055ec

allow to use IP addresses without defined resolver
author Igor Sysoev <igor@sysoev.ru>
date Mon, 03 Dec 2007 10:05:19 +0000
parents ca317d9b5c09
children a24c909ad879
comparison
equal deleted inserted replaced
1682:85523506e427 1683:1e0b028055ec
97 r = ngx_calloc(sizeof(ngx_resolver_t), log); 97 r = ngx_calloc(sizeof(ngx_resolver_t), log);
98 if (r == NULL) { 98 if (r == NULL) {
99 return NULL; 99 return NULL;
100 } 100 }
101 101
102 uc = ngx_calloc(sizeof(ngx_udp_connection_t), log);
103 if (uc == NULL) {
104 return NULL;
105 }
106
107 r->event = ngx_calloc(sizeof(ngx_event_t), log); 102 r->event = ngx_calloc(sizeof(ngx_event_t), log);
108 if (r->event == NULL) { 103 if (r->event == NULL) {
109 return NULL; 104 return NULL;
110 } 105 }
111 106
136 r->event->handler = ngx_resolver_resend_handler; 131 r->event->handler = ngx_resolver_resend_handler;
137 r->event->data = r; 132 r->event->data = r;
138 r->event->log = log; 133 r->event->log = log;
139 r->ident = -1; 134 r->ident = -1;
140 135
141 r->udp_connection = uc;
142
143 r->resend_timeout = 5; 136 r->resend_timeout = 5;
144 r->expire = 30; 137 r->expire = 30;
145 r->valid = 300; 138 r->valid = 300;
146 139
147 r->log = log; 140 r->log = log;
148 r->log_level = NGX_LOG_ALERT; 141 r->log_level = NGX_LOG_ALERT;
149 142
150 uc->sockaddr = addr->sockaddr; 143 if (addr) {
151 uc->socklen = addr->socklen; 144 uc = ngx_calloc(sizeof(ngx_udp_connection_t), log);
152 uc->server = addr->name; 145 if (uc == NULL) {
153 uc->log = log; 146 return NULL;
147 }
148
149 r->udp_connection = uc;
150
151 uc->sockaddr = addr->sockaddr;
152 uc->socklen = addr->socklen;
153 uc->server = addr->name;
154 uc->log = log;
155 }
154 156
155 return r; 157 return r;
156 } 158 }
157 159
158 160
173 temp->addr = addr; 175 temp->addr = addr;
174 temp->quick = 1; 176 temp->quick = 1;
175 177
176 return temp; 178 return temp;
177 } 179 }
180 }
181
182 if (r->udp_connection == NULL) {
183 return NGX_NO_RESOLVER;
178 } 184 }
179 185
180 ctx = ngx_resolver_calloc(r, sizeof(ngx_resolver_ctx_t)); 186 ctx = ngx_resolver_calloc(r, sizeof(ngx_resolver_ctx_t));
181 187
182 if (ctx) { 188 if (ctx) {