aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_connection.h
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-09-23 11:02:22 +0000
committerIgor Sysoev <igor@sysoev.ru>2005-09-23 11:02:22 +0000
commit31eb8c015d58a5b36b9578d4ee6c217e16cb776f (patch)
tree28ebccc10deba4132e05414aac1874d5013fdf58 /src/core/ngx_connection.h
parentf44a1f5f579e19441db2d477a7c81d8894ba2262 (diff)
downloadnginx-31eb8c015d58a5b36b9578d4ee6c217e16cb776f.tar.gz
nginx-31eb8c015d58a5b36b9578d4ee6c217e16cb776f.zip
nginx-0.2.0-RELEASE importrelease-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.
Diffstat (limited to 'src/core/ngx_connection.h')
-rw-r--r--src/core/ngx_connection.h94
1 files changed, 50 insertions, 44 deletions
diff --git a/src/core/ngx_connection.h b/src/core/ngx_connection.h
index 3c280bded..e13f2857f 100644
--- 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;
-
- 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;
-
- 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 */
-
- ngx_log_t *log;
- int backlog;
-
- 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 */
-
- 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;
+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;
+
+ /* 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;
+
+ 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 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_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);
-
-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_ */