X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=app%2Fnginx%2Fsrc%2Fcore%2Fngx_resolver.h;fp=app%2Fnginx%2Fsrc%2Fcore%2Fngx_resolver.h;h=0000000000000000000000000000000000000000;hb=bf8c01bfcd015d43cfbcb893e48c6a83a95c91ec;hp=a0d6fc341aeccc58726a4904f23e946635720341;hpb=862937c477a3d90798a5e4c4e84fc7c79aae52fe;p=tldk.git diff --git a/app/nginx/src/core/ngx_resolver.h b/app/nginx/src/core/ngx_resolver.h deleted file mode 100644 index a0d6fc3..0000000 --- a/app/nginx/src/core/ngx_resolver.h +++ /dev/null @@ -1,238 +0,0 @@ - -/* - * Copyright (C) Igor Sysoev - * Copyright (C) Nginx, Inc. - */ - - -#include -#include - - -#ifndef _NGX_RESOLVER_H_INCLUDED_ -#define _NGX_RESOLVER_H_INCLUDED_ - - -#define NGX_RESOLVE_A 1 -#define NGX_RESOLVE_CNAME 5 -#define NGX_RESOLVE_PTR 12 -#define NGX_RESOLVE_MX 15 -#define NGX_RESOLVE_TXT 16 -#if (NGX_HAVE_INET6) -#define NGX_RESOLVE_AAAA 28 -#endif -#define NGX_RESOLVE_SRV 33 -#define NGX_RESOLVE_DNAME 39 - -#define NGX_RESOLVE_FORMERR 1 -#define NGX_RESOLVE_SERVFAIL 2 -#define NGX_RESOLVE_NXDOMAIN 3 -#define NGX_RESOLVE_NOTIMP 4 -#define NGX_RESOLVE_REFUSED 5 -#define NGX_RESOLVE_TIMEDOUT NGX_ETIMEDOUT - - -#define NGX_NO_RESOLVER (void *) -1 - -#define NGX_RESOLVER_MAX_RECURSION 50 - - -typedef struct ngx_resolver_s ngx_resolver_t; - - -typedef struct { - ngx_connection_t *udp; - ngx_connection_t *tcp; - struct sockaddr *sockaddr; - socklen_t socklen; - ngx_str_t server; - ngx_log_t log; - ngx_buf_t *read_buf; - ngx_buf_t *write_buf; - ngx_resolver_t *resolver; -} ngx_resolver_connection_t; - - -typedef struct ngx_resolver_ctx_s ngx_resolver_ctx_t; - -typedef void (*ngx_resolver_handler_pt)(ngx_resolver_ctx_t *ctx); - - -typedef struct { - struct sockaddr *sockaddr; - socklen_t socklen; - ngx_str_t name; - u_short priority; - u_short weight; -} ngx_resolver_addr_t; - - -typedef struct { - ngx_str_t name; - u_short priority; - u_short weight; - u_short port; -} ngx_resolver_srv_t; - - -typedef struct { - ngx_str_t name; - u_short priority; - u_short weight; - u_short port; - - ngx_resolver_ctx_t *ctx; - ngx_int_t state; - - ngx_uint_t naddrs; - ngx_addr_t *addrs; -} ngx_resolver_srv_name_t; - - -typedef struct { - ngx_rbtree_node_t node; - ngx_queue_t queue; - - /* PTR: resolved name, A: name to resolve */ - u_char *name; - -#if (NGX_HAVE_INET6) - /* PTR: IPv6 address to resolve (IPv4 address is in rbtree node key) */ - struct in6_addr addr6; -#endif - - u_short nlen; - u_short qlen; - - u_char *query; -#if (NGX_HAVE_INET6) - u_char *query6; -#endif - - union { - in_addr_t addr; - in_addr_t *addrs; - u_char *cname; - ngx_resolver_srv_t *srvs; - } u; - - u_char code; - u_short naddrs; - u_short nsrvs; - u_short cnlen; - -#if (NGX_HAVE_INET6) - union { - struct in6_addr addr6; - struct in6_addr *addrs6; - } u6; - - u_short naddrs6; -#endif - - time_t expire; - time_t valid; - uint32_t ttl; - - unsigned tcp:1; -#if (NGX_HAVE_INET6) - unsigned tcp6:1; -#endif - - ngx_uint_t last_connection; - - ngx_resolver_ctx_t *waiting; -} ngx_resolver_node_t; - - -struct ngx_resolver_s { - /* has to be pointer because of "incomplete type" */ - ngx_event_t *event; - void *dummy; - ngx_log_t *log; - - /* event ident must be after 3 pointers as in ngx_connection_t */ - ngx_int_t ident; - - /* simple round robin DNS peers balancer */ - ngx_array_t connections; - ngx_uint_t last_connection; - - ngx_rbtree_t name_rbtree; - ngx_rbtree_node_t name_sentinel; - - ngx_rbtree_t srv_rbtree; - ngx_rbtree_node_t srv_sentinel; - - ngx_rbtree_t addr_rbtree; - ngx_rbtree_node_t addr_sentinel; - - ngx_queue_t name_resend_queue; - ngx_queue_t srv_resend_queue; - ngx_queue_t addr_resend_queue; - - ngx_queue_t name_expire_queue; - ngx_queue_t srv_expire_queue; - ngx_queue_t addr_expire_queue; - -#if (NGX_HAVE_INET6) - ngx_uint_t ipv6; /* unsigned ipv6:1; */ - ngx_rbtree_t addr6_rbtree; - ngx_rbtree_node_t addr6_sentinel; - ngx_queue_t addr6_resend_queue; - ngx_queue_t addr6_expire_queue; -#endif - - time_t resend_timeout; - time_t tcp_timeout; - time_t expire; - time_t valid; - - ngx_uint_t log_level; -}; - - -struct ngx_resolver_ctx_s { - ngx_resolver_ctx_t *next; - ngx_resolver_t *resolver; - ngx_resolver_node_t *node; - - /* event ident must be after 3 pointers as in ngx_connection_t */ - ngx_int_t ident; - - ngx_int_t state; - ngx_str_t name; - ngx_str_t service; - - time_t valid; - ngx_uint_t naddrs; - ngx_resolver_addr_t *addrs; - ngx_resolver_addr_t addr; - struct sockaddr_in sin; - - ngx_uint_t count; - ngx_uint_t nsrvs; - ngx_resolver_srv_name_t *srvs; - - ngx_resolver_handler_pt handler; - void *data; - ngx_msec_t timeout; - - ngx_uint_t quick; /* unsigned quick:1; */ - ngx_uint_t recursion; - ngx_event_t *event; -}; - - -ngx_resolver_t *ngx_resolver_create(ngx_conf_t *cf, ngx_str_t *names, - ngx_uint_t n); -ngx_resolver_ctx_t *ngx_resolve_start(ngx_resolver_t *r, - ngx_resolver_ctx_t *temp); -ngx_int_t ngx_resolve_name(ngx_resolver_ctx_t *ctx); -void ngx_resolve_name_done(ngx_resolver_ctx_t *ctx); -ngx_int_t ngx_resolve_addr(ngx_resolver_ctx_t *ctx); -void ngx_resolve_addr_done(ngx_resolver_ctx_t *ctx); -char *ngx_resolver_strerror(ngx_int_t err); - - -#endif /* _NGX_RESOLVER_H_INCLUDED_ */