diff src/core/ngx_connection.h @ 103:6dfda4cf5200

nginx-0.0.1-2003-06-11-19:28:34 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 11 Jun 2003 15:28:34 +0000
parents 2e069b6e6920
children a9bc21d63fe4
line wrap: on
line diff
--- a/src/core/ngx_connection.h
+++ b/src/core/ngx_connection.h
@@ -1,45 +1,98 @@
 #ifndef _NGX_CONNECTION_H_INCLUDED_
 #define _NGX_CONNECTION_H_INCLUDED_
 
+
 #include <ngx_config.h>
 #include <ngx_core.h>
-#include <ngx_event.h>
+
+
+typedef struct {
+    ngx_socket_t      fd;
+
+    struct sockaddr  *sockaddr;
+    socklen_t         socklen;    /* size of sockaddr */
+    int               addr;       /* offset to address in sockaddr */
+    int               addr_text_max_len;
+    ngx_str_t         addr_text;
+
+    int               family;
+    int               type;
+    int               protocol;
+    int               flags;      /* Winsock2 flags */
+
+    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;
+
+    int               pool_size;
+    int               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          bound:1;       /* already bound */
+    unsigned          inherited:1;   /* inherited from previous process */
+    unsigned          nonblocking_accept:1;
+    unsigned          nonblocking:1;
+#if 0
+    unsigned          overlapped:1;  /* Winsock2 overlapped */
+#endif
+    unsigned          shared:1;    /* shared between threads or processes */
+#if (HAVE_DEFERRED_ACCEPT)
+    unsigned          deferred_accept:1;
+#endif
+} ngx_listening_t;
 
 
 struct ngx_connection_s {
-    ngx_socket_t     fd;
-    void            *data;
-
-#ifdef NGX_EVENT
+    void             *data;
     ngx_event_t      *read;
     ngx_event_t      *write;
-#endif
+
+    ngx_socket_t      fd;
+
+    ngx_listening_t  *listening;
 
     off_t             sent;
 
+#if 0
     void            (*handler)(ngx_connection_t *c);
+#endif
     void             *ctx;
     void             *servers;
 
+
     ngx_log_t        *log;
 
     ngx_pool_t       *pool;
+#if 0
     int               pool_size;
 
     int               family;
+#endif
+
     struct sockaddr  *sockaddr;
     socklen_t         socklen;
+    ngx_str_t         addr_text;
+
 #if (HAVE_IOCP)
     struct sockaddr  *local_sockaddr;
     socklen_t         local_socklen;
-    void             *listening;
 #endif
+
+#if 0
     int               addr;
     int               addr_text_max_len;
-    ngx_str_t         addr_text;
+#endif
 
     ngx_hunk_t       *buffer;
+#if 0
     unsigned int      post_accept_timeout;
+#endif
 
     int               number;
 
@@ -47,9 +100,15 @@ struct ngx_connection_s {
     unsigned          unexpected_eof:1;
     unsigned          tcp_nopush:1;
     unsigned          tcp_nopush_enabled:1;
+#if (HAVE_IOCP)
+    unsigned          accept_context_updated:1;
+#endif
 };
 
 
+
+
+
 #if 0
 cached file
     int      fd;       -2 unused, -1 closed (but read or mmaped), >=0 open
@@ -84,10 +143,11 @@ typedef struct {
 #endif
 
 
+
+extern ngx_array_t  ngx_listening_sockets;
 extern ngx_os_io_t  ngx_io;
 
 
-
 extern ngx_chain_t *(*ngx_write_chain_proc)
                                         (ngx_connection_t *c, ngx_chain_t *in);