⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ngx_resolver.h

📁 Nginx是一个高性能的HTTP和反向代理服务器
💻 H
字号:
/* * Copyright (C) Igor Sysoev */#include <ngx_config.h>#include <ngx_core.h>#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#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    50typedef struct {    ngx_connection_t         *connection;    struct sockaddr          *sockaddr;    socklen_t                 socklen;    ngx_str_t                 server;    ngx_log_t                *log;} ngx_udp_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 {    ngx_rbtree_node_t         node;    ngx_queue_t               queue;    /* PTR: resolved name, A: name to resolve */    u_char                   *name;    u_short                   nlen;    u_short                   qlen;    u_char                   *query;    union {        in_addr_t             addr;        in_addr_t            *addrs;        u_char               *cname;    } u;    u_short                   naddrs;    u_short                   cnlen;    time_t                    expire;    time_t                    valid;    ngx_resolver_ctx_t       *waiting;} ngx_resolver_node_t;typedef struct {    /* has to be pointer because of "incomplete type" */    ngx_event_t              *event;    /* TODO: DNS peers balancer */    /* STUB */    ngx_udp_connection_t     *udp_connection;    ngx_log_t                *log;    /* ident must be after 3 pointers */    ngx_int_t                 ident;    ngx_rbtree_t              name_rbtree;    ngx_rbtree_node_t         name_sentinel;    ngx_rbtree_t              addr_rbtree;    ngx_rbtree_node_t         addr_sentinel;    ngx_queue_t               name_resend_queue;    ngx_queue_t               addr_resend_queue;    ngx_queue_t               name_expire_queue;    ngx_queue_t               addr_expire_queue;    time_t                    resend_timeout;    time_t                    expire;    time_t                    valid;    ngx_uint_t                log_level;} ngx_resolver_t;struct ngx_resolver_ctx_s {    ngx_resolver_ctx_t       *next;    ngx_resolver_t           *resolver;    ngx_udp_connection_t     *udp_connection;    /* ident must be after 3 pointers */    ngx_int_t                 ident;    ngx_int_t                 state;    ngx_int_t                 type;    ngx_str_t                 name;    ngx_uint_t                naddrs;    in_addr_t                *addrs;    in_addr_t                 addr;    /* TODO: DNS peers balancer ctx */    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_peer_addr_t *addr);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_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -