Mercurial > hg > nginx
comparison src/core/ngx_resolver.h @ 4225:016352c19049
Support of several servers in the "resolver" directive.
Patch by Kirill A. Korinskiy.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 24 Oct 2011 16:09:05 +0000 |
parents | 71193a456616 |
children | d620f497c50f |
comparison
equal
deleted
inserted
replaced
4224:4c4997de65b8 | 4225:016352c19049 |
---|---|
75 | 75 |
76 | 76 |
77 typedef struct { | 77 typedef struct { |
78 /* has to be pointer because of "incomplete type" */ | 78 /* has to be pointer because of "incomplete type" */ |
79 ngx_event_t *event; | 79 ngx_event_t *event; |
80 | 80 void *dummy; |
81 /* TODO: DNS peers balancer */ | |
82 /* STUB */ | |
83 ngx_udp_connection_t *udp_connection; | |
84 | |
85 ngx_log_t *log; | 81 ngx_log_t *log; |
86 | 82 |
87 /* ident must be after 3 pointers */ | 83 /* ident must be after 3 pointers */ |
88 ngx_int_t ident; | 84 ngx_int_t ident; |
85 | |
86 /* simple round robin DNS peers balancer */ | |
87 ngx_array_t udp_connections; | |
88 ngx_uint_t last_connection; | |
89 | 89 |
90 ngx_rbtree_t name_rbtree; | 90 ngx_rbtree_t name_rbtree; |
91 ngx_rbtree_node_t name_sentinel; | 91 ngx_rbtree_node_t name_sentinel; |
92 | 92 |
93 ngx_rbtree_t addr_rbtree; | 93 ngx_rbtree_t addr_rbtree; |
121 | 121 |
122 ngx_uint_t naddrs; | 122 ngx_uint_t naddrs; |
123 in_addr_t *addrs; | 123 in_addr_t *addrs; |
124 in_addr_t addr; | 124 in_addr_t addr; |
125 | 125 |
126 /* TODO: DNS peers balancer ctx */ | |
127 | |
128 ngx_resolver_handler_pt handler; | 126 ngx_resolver_handler_pt handler; |
129 void *data; | 127 void *data; |
130 ngx_msec_t timeout; | 128 ngx_msec_t timeout; |
131 | 129 |
132 ngx_uint_t quick; /* unsigned quick:1; */ | 130 ngx_uint_t quick; /* unsigned quick:1; */ |
133 ngx_uint_t recursion; | 131 ngx_uint_t recursion; |
134 ngx_event_t *event; | 132 ngx_event_t *event; |
135 }; | 133 }; |
136 | 134 |
137 | 135 |
138 ngx_resolver_t *ngx_resolver_create(ngx_conf_t *cf, ngx_addr_t *addr); | 136 ngx_resolver_t *ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, |
137 ngx_uint_t n); | |
139 ngx_resolver_ctx_t *ngx_resolve_start(ngx_resolver_t *r, | 138 ngx_resolver_ctx_t *ngx_resolve_start(ngx_resolver_t *r, |
140 ngx_resolver_ctx_t *temp); | 139 ngx_resolver_ctx_t *temp); |
141 ngx_int_t ngx_resolve_name(ngx_resolver_ctx_t *ctx); | 140 ngx_int_t ngx_resolve_name(ngx_resolver_ctx_t *ctx); |
142 void ngx_resolve_name_done(ngx_resolver_ctx_t *ctx); | 141 void ngx_resolve_name_done(ngx_resolver_ctx_t *ctx); |
143 ngx_int_t ngx_resolve_addr(ngx_resolver_ctx_t *ctx); | 142 ngx_int_t ngx_resolve_addr(ngx_resolver_ctx_t *ctx); |