diff src/core/ngx_connection.h @ 92:45945fa8b8ba NGINX_0_2_0

nginx 0.2.0 *) The pid-file names used during online upgrade was changed and now is not required a manual rename operation. The old master process adds the ".oldbin" suffix to its pid-file and executes a new binary file. The new master process creates usual pid-file without the ".newbin" suffix. If the master process exits, then old master process renames back its pid-file with the ".oldbin" suffix to the pid-file without suffix. *) Change: the "worker_connections" directive, new name of the "connections" directive; now the directive specifies maximum number of connections, but not maximum socket descriptor number. *) Feature: SSL supports the session cache inside one worker process. *) Feature: the "satisfy_any" directive. *) Change: the ngx_http_access_module and ngx_http_auth_basic_module do not run for subrequests. *) Feature: the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives. *) Bugfix: if all backend using in load-balancing failed after one error, then nginx did not try do connect to them during 60 seconds. *) Bugfix: in IMAP/POP3 command argument parsing. Thanks to Rob Mueller. *) Bugfix: errors while using SSL in IMAP/POP3 proxy. *) Bugfix: errors while using SSI and gzipping. *) Bugfix: the "Expires" and "Cache-Control" header lines were omitted from the 304 responses. Thanks to Alexandr Kukushkin.
author Igor Sysoev <http://sysoev.ru>
date Fri, 23 Sep 2005 00:00:00 +0400
parents e916a291e9aa
children ca4f70b3ccc6
line wrap: on
line diff
--- a/src/core/ngx_connection.h
+++ b/src/core/ngx_connection.h
@@ -12,54 +12,60 @@
 #include <ngx_core.h>
 
 
-typedef struct {
-    ngx_socket_t      fd;
+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;
+    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                 family;
+    int                 type;
+    int                 backlog;
 
-    void            (*handler)(ngx_connection_t *c); /* handler of accepted
-                                                        connection */
-    void             *ctx;        /* ngx_http_conf_ctx_t, for example */
-    void             *servers;    /* array of ngx_http_in_addr_t, for example */
+    /* handler of accepted connection */
+    void              (*handler)(ngx_connection_t *c);
+
+    void               *ctx;      /* ngx_http_conf_ctx_t, for example */
+    void               *servers;  /* array of ngx_http_in_addr_t, for example */
 
-    ngx_log_t        *log;
-    int               backlog;
+    ngx_log_t           log;
 
-    size_t            pool_size;
-    size_t            post_accept_buffer_size; /* should be here because
-                                                  of the AcceptEx() preread */
-    time_t            post_accept_timeout;     /* should be here because
-                                                  of the deferred accept */
+    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 */
+    time_t              post_accept_timeout;
+
+    ngx_listening_t    *previous;
+    ngx_connection_t   *connection;
 
-    unsigned          open:1;
-    unsigned          remain:1;
-    unsigned          ignore:1;
+    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          change_backlog:1;
-    unsigned          nonblocking:1;
-    unsigned          shared:1;    /* shared between threads or processes */
-    unsigned          addr_ntop:1;
+    unsigned            bound:1;       /* already bound */
+    unsigned            inherited:1;   /* inherited from previous process */
+    unsigned            nonblocking_accept:1;
+    unsigned            change_backlog: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;
+    unsigned            deferred_accept:1;
+    unsigned            delete_deferred:1;
+    unsigned            add_deferred:1;
 #ifdef SO_ACCEPTFILTER
-    char             *accept_filter;
+    char               *accept_filter;
 #endif
 #endif
 
-} ngx_listening_t;
+};
 
 
 typedef enum {
@@ -160,8 +166,8 @@ void ngx_close_listening_sockets(ngx_cyc
 void ngx_close_connection(ngx_connection_t *c);
 ngx_int_t ngx_connection_error(ngx_connection_t *c, ngx_err_t err, char *text);
 
-
-extern ngx_os_io_t  ngx_io;
+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_ */