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

📄 ngx_connection.h

📁 Nginx是一个高性能的HTTP和反向代理服务器
💻 H
字号:
/* * Copyright (C) Igor Sysoev */#ifndef _NGX_CONNECTION_H_INCLUDED_#define _NGX_CONNECTION_H_INCLUDED_#include <ngx_config.h>#include <ngx_core.h>typedef struct ngx_listening_s  ngx_listening_t;struct ngx_listening_s {    ngx_socket_t        fd;    struct sockaddr    *sockaddr;    socklen_t           socklen;    /* size of sockaddr */    size_t              addr;       /* offset to address in sockaddr */    size_t              addr_text_max_len;    ngx_str_t           addr_text;    int                 family;    int                 type;    int                 backlog;    int                 rcvbuf;    int                 sndbuf;    /* handler of accepted connection */    ngx_connection_handler_pt   handler;    void               *servers;  /* array of ngx_http_in_addr_t, for example */    ngx_log_t           log;    size_t              pool_size;    /* should be here because of the AcceptEx() preread */    size_t              post_accept_buffer_size;    /* should be here because of the deferred accept */    ngx_msec_t          post_accept_timeout;    ngx_listening_t    *previous;    ngx_connection_t   *connection;    unsigned            open:1;    unsigned            remain:1;    unsigned            ignore:1;    unsigned            bound:1;       /* already bound */    unsigned            inherited:1;   /* inherited from previous process */    unsigned            nonblocking_accept:1;    unsigned            listen:1;    unsigned            nonblocking:1;    unsigned            shared:1;    /* shared between threads or processes */    unsigned            addr_ntop:1;#if (NGX_HAVE_DEFERRED_ACCEPT)    unsigned            deferred_accept:1;    unsigned            delete_deferred:1;    unsigned            add_deferred:1;#ifdef SO_ACCEPTFILTER    char               *accept_filter;#endif#endif};typedef enum {     NGX_ERROR_CRIT = 0,     NGX_ERROR_ERR,     NGX_ERROR_INFO,     NGX_ERROR_IGNORE_ECONNRESET} ngx_connection_log_error_e;typedef enum {     NGX_TCP_NODELAY_UNSET = 0,     NGX_TCP_NODELAY_SET,     NGX_TCP_NODELAY_DISABLED} ngx_connection_tcp_nodelay_e;typedef enum {     NGX_TCP_NOPUSH_UNSET = 0,     NGX_TCP_NOPUSH_SET,     NGX_TCP_NOPUSH_DISABLED} ngx_connection_tcp_nopush_e;#define NGX_LOWLEVEL_BUFFERED  0x0f#define NGX_SSL_BUFFERED       0x01struct ngx_connection_s {    void               *data;    ngx_event_t        *read;    ngx_event_t        *write;    ngx_socket_t        fd;    ngx_recv_pt         recv;    ngx_send_pt         send;    ngx_recv_chain_pt   recv_chain;    ngx_send_chain_pt   send_chain;    ngx_listening_t    *listening;    off_t               sent;    ngx_log_t          *log;    ngx_pool_t         *pool;    struct sockaddr    *sockaddr;    socklen_t           socklen;    ngx_str_t           addr_text;#if (NGX_SSL)    ngx_ssl_connection_t  *ssl;#endif#if (NGX_HAVE_IOCP)    struct sockaddr    *local_sockaddr;    socklen_t           local_socklen;#endif    ngx_buf_t          *buffer;    ngx_atomic_uint_t   number;    unsigned            buffered:8;    unsigned            log_error:2;     /* ngx_connection_log_error_e */    unsigned            single_connection:1;    unsigned            unexpected_eof:1;    unsigned            timedout:1;    unsigned            error:1;    unsigned            destroyed:1;    unsigned            idle:1;    unsigned            close:1;    unsigned            sendfile:1;    unsigned            sndlowat:1;    unsigned            tcp_nodelay:2;   /* ngx_connection_tcp_nodelay_e */    unsigned            tcp_nopush:2;    /* ngx_connection_tcp_nopush_e */#if (NGX_HAVE_IOCP)    unsigned            accept_context_updated:1;#endif#if (NGX_THREADS)    ngx_atomic_t        lock;#endif};#ifndef ngx_ssl_set_nosendshut#define ngx_ssl_set_nosendshut(ssl)#endifngx_listening_t *ngx_listening_inet_stream_socket(ngx_conf_t *cf,    in_addr_t addr, in_port_t port);ngx_int_t ngx_set_inherited_sockets(ngx_cycle_t *cycle);ngx_int_t ngx_open_listening_sockets(ngx_cycle_t *cycle);void ngx_configure_listening_socket(ngx_cycle_t *cycle);void ngx_close_listening_sockets(ngx_cycle_t *cycle);void ngx_close_connection(ngx_connection_t *c);ngx_int_t ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text);ngx_connection_t *ngx_get_connection(ngx_socket_t s, ngx_log_t *log);void ngx_free_connection(ngx_connection_t *c);#endif /* _NGX_CONNECTION_H_INCLUDED_ */

⌨️ 快捷键说明

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