comparison src/core/ngx_resolver.h @ 5477:98876ce2a7fd

Resolver: implemented IPv6 name to address resolving.
author Ruslan Ermilov <ru@nginx.com>
date Mon, 09 Dec 2013 10:53:28 +0400
parents 950c9ed3e66f
children 3cb3175a6fef
comparison
equal deleted inserted replaced
5476:950c9ed3e66f 5477:98876ce2a7fd
16 #define NGX_RESOLVE_A 1 16 #define NGX_RESOLVE_A 1
17 #define NGX_RESOLVE_CNAME 5 17 #define NGX_RESOLVE_CNAME 5
18 #define NGX_RESOLVE_PTR 12 18 #define NGX_RESOLVE_PTR 12
19 #define NGX_RESOLVE_MX 15 19 #define NGX_RESOLVE_MX 15
20 #define NGX_RESOLVE_TXT 16 20 #define NGX_RESOLVE_TXT 16
21 #if (NGX_HAVE_INET6)
22 #define NGX_RESOLVE_AAAA 28
23 #endif
21 #define NGX_RESOLVE_DNAME 39 24 #define NGX_RESOLVE_DNAME 39
22 25
23 #define NGX_RESOLVE_FORMERR 1 26 #define NGX_RESOLVE_FORMERR 1
24 #define NGX_RESOLVE_SERVFAIL 2 27 #define NGX_RESOLVE_SERVFAIL 2
25 #define NGX_RESOLVE_NXDOMAIN 3 28 #define NGX_RESOLVE_NXDOMAIN 3
61 64
62 u_short nlen; 65 u_short nlen;
63 u_short qlen; 66 u_short qlen;
64 67
65 u_char *query; 68 u_char *query;
69 #if (NGX_HAVE_INET6)
70 u_char *query6;
71 #endif
66 72
67 union { 73 union {
68 in_addr_t addr; 74 in_addr_t addr;
69 in_addr_t *addrs; 75 in_addr_t *addrs;
70 u_char *cname; 76 u_char *cname;
71 } u; 77 } u;
72 78
79 u_char code;
73 u_short naddrs; 80 u_short naddrs;
74 u_short cnlen; 81 u_short cnlen;
75 82
83 #if (NGX_HAVE_INET6)
84 union {
85 struct in6_addr addr6;
86 struct in6_addr *addrs6;
87 } u6;
88
89 u_short naddrs6;
90 #endif
91
76 time_t expire; 92 time_t expire;
77 time_t valid; 93 time_t valid;
94 uint32_t ttl;
78 95
79 ngx_resolver_ctx_t *waiting; 96 ngx_resolver_ctx_t *waiting;
80 } ngx_resolver_node_t; 97 } ngx_resolver_node_t;
81 98
82 99
127 144
128 /* ident must be after 3 pointers */ 145 /* ident must be after 3 pointers */
129 ngx_int_t ident; 146 ngx_int_t ident;
130 147
131 ngx_int_t state; 148 ngx_int_t state;
132 ngx_int_t type;
133 ngx_str_t name; 149 ngx_str_t name;
134 150
135 ngx_uint_t naddrs; 151 ngx_uint_t naddrs;
136 ngx_addr_t *addrs; 152 ngx_addr_t *addrs;
137 ngx_addr_t addr; 153 ngx_addr_t addr;