nginx-0.0.1-2003-05-21-17:28:21 import
diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h
index 690cb32..b724129 100644
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -4,218 +4,59 @@
 
 #include <ngx_auto_config.h>
 
-/*
-   auto_conf
-   ngx_inline inline __inline __inline__
-*/
 
-/* STUB */
+#if defined __FreeBSD__
+#include <ngx_freebsd_config.h>
+
+
+#elif defined __linux__
+#include <ngx_linux_config.h>
+
+
+       /* Solaris */
+#elif defined(sun) && (defined(__svr4__) || defined(__SVR4))
+#include <ngx_solaris_config.h>
+
+
+#elif defined _WIN32
+
+/* STUB to allocate a big ngx_connections */
 #undef  FD_SETSIZE
 #define FD_SETSIZE  1024
 
+#include <ngx_win32_config.h>
 
-/* auto_conf */
-#define NGX_ALIGN       (4 - 1)
-#define NGX_ALIGN_TYPE  unsigned
 
-#define ngx_align(p)    (char *) (((NGX_ALIGN_TYPE) p + NGX_ALIGN) & ~NGX_ALIGN)
+#else /* posix */
+
+#endif
 
 
 
-/* Platform specific: array[NGX_INVALID_ARRAY_INDEX] should cause SIGSEGV */
+/* TODO: platform specific: array[NGX_INVALID_ARRAY_INDEX] must cause SIGSEGV */
 #define NGX_INVALID_ARRAY_INDEX 0x80000000
 
 
-#ifdef _WIN32
+/* TODO: auto_conf */
+#define NGX_ALIGN       (4 - 1)
+#define NGX_ALIGN_TYPE  (unsigned int)
 
-#define WIN32 1
-
-#include <winsock2.h>
-#include <mswsock.h>
-#include <stddef.h>    /* offsetof */
-#include <stdio.h>
-#include <stdarg.h>
+#define ngx_align(p)    (char *) ((NGX_ALIGN_TYPE p + NGX_ALIGN) & ~NGX_ALIGN)
 
 
-#define ngx_inline   __inline
-
-
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
-#endif
-
-#ifndef HAVE_WIN32_TRANSMITPACKETS
-#define HAVE_WIN32_TRANSMITPACKETS  1
-#define HAVE_WIN32_TRANSMITFILE     0
-#endif
-
-#ifndef HAVE_WIN32_TRANSMITFILE
-#define HAVE_WIN32_TRANSMITFILE  1
-#endif
-
-#if (HAVE_WIN32_TRANSMITPACKETS) || (HAVE_WIN32_TRANSMITFILE)
-#define HAVE_SENDFILE  1
-#endif
-
-#else /* POSIX */
-
-
-
-/* Solaris */
-#if defined(sun) && (defined(__svr4__) || defined(__SVR4))
-
-#define SOLARIS  1
-
-#define _FILE_OFFSET_BITS  64  /* should be before sys/types.h */
-
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
-#endif
-
-#include <sys/stropts.h>        /* INFTIM */
-
-#endif /* Solaris */
-
-
-
-#include <unistd.h>
-#include <stddef.h>             /* offsetof */
-#include <stdlib.h>
-#include <stdio.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-#include <sys/uio.h>
-#include <sys/resource.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-
-
-#ifndef HAVE_POLL
-#define HAVE_POLL  1
-#include <poll.h>
-#endif
-
-
-#if (HAVE_DEVPOLL) && !(TEST_DEVPOLL)
-#include <sys/ioctl.h>
-#include <sys/devpoll.h>        /* Solaris, HP/UX */
-#endif
-
-
-#if (HAVE_AIO)
-#include <aio.h>
-#endif
-
-
+/* TODO: auto_conf: ngx_inline   inline __inline __inline__ */
+#ifndef ngx_inline
 #define ngx_inline   inline
+#endif
 
 
-#endif /* POSIX */
-
-
-
-#define LF     10
-#define CR     13
-#define CRLF   "\x0d\x0a"
-
+#ifndef INADDR_NONE    /* Solaris */
+#define INADDR_NONE ((unsigned long) -1)
+#endif
 
 #ifndef INET_ADDRSTRLEN
 #define INET_ADDRSTRLEN 16
 #endif
 
 
-#if defined SO_ACCEPTFILTER || defined TCP_DEFER_ACCEPT
-
-#ifndef HAVE_DEFERRED_ACCEPT
-#define HAVE_DEFERRED_ACCEPT  1
-#endif
-
-#endif
-
-
-#ifndef HAVE_SELECT
-#define HAVE_SELECT 1
-#endif
-
-
-#ifdef __FreeBSD__
-
-#include <osreldate.h>
-
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
-#endif
-
-/* FreeBSD sendfile */
-#if __FreeBSD_version >= 300007
-
-#ifndef HAVE_FREEBSD_SENDFILE
-#define HAVE_FREEBSD_SENDFILE  1
-#endif
-
-#ifndef HAVE_FREEBSD_SENDFILE_NBYTES_BUG
-#define HAVE_FREEBSD_SENDFILE_NBYTES_BUG  2
-#endif
-
-#endif /* FreeBSD sendfile */
-
-/* FreeBSD sendfile nbytes bug */
-#if (__FreeBSD__ == 4 && __FreeBSD_version >= 460100) \
-    || __FreeBSD_version == 460001 \
-    || __FreeBSD_version >= 500029
-
-#if (HAVE_FREEBSD_SENDFILE_NBYTES_BUG == 2)
-#undef  HAVE_FREEBSD_SENDFILE_NBYTES_BUG
-#define HAVE_FREEBSD_SENDFILE_NBYTES_BUG  0
-#endif
-
-#endif /* FreeBSD sendfile nbytes bug */
-
-#if (HAVE_FREEBSD_SENDFILE)
-#define HAVE_SENDFILE  1
-#endif
-
-
-/* FreeBSD kqueue */
-#if (__FreeBSD__ == 4 && __FreeBSD_version >= 410000) \
-    || __FreeBSD_version >= 500011
-
-#ifndef HAVE_KQUEUE
-#define HAVE_KQUEUE  1
-#include <sys/event.h>
-#endif
-
-/* kqueue's NOTE_LOWAT */
-#if (__FreeBSD__ == 4 && __FreeBSD_version >= 430000) \
-    || __FreeBSD_version >= 500018
-
-#ifndef HAVE_LOWAT_EVENT
-#define HAVE_LOWAT_EVENT  1
-#endif
-
-#endif
-
-#endif /* FreeBSD kqueue */
-
-
-#endif /* __FreeBSD__ */
-
-
-#ifdef __SOME_OS_TEMPLATE__
-
-#ifndef HAVE_INHERITED_NONBLOCK
-#define HAVE_INHERITED_NONBLOCK  1
-#endif
-
-#endif
-
-
 #endif /* _NGX_CONFIG_H_INCLUDED_ */
diff --git a/src/core/ngx_core.h b/src/core/ngx_core.h
index 76003fb..aabbbc7 100644
--- a/src/core/ngx_core.h
+++ b/src/core/ngx_core.h
@@ -37,6 +37,12 @@
 */
 
 
+#define LF     10
+#define CR     13
+#define CRLF   "\x0d\x0a"
+
+
+
 #define NGX_MAXHOSTNAMELEN 32
 /*
 #define NGX_MAXHOSTNAMELEN MAXHOSTNAMELEN
diff --git a/src/core/ngx_file.c b/src/core/ngx_file.c
index d70004b..b85b472 100644
--- a/src/core/ngx_file.c
+++ b/src/core/ngx_file.c
@@ -81,7 +81,7 @@
 
         if (ngx_create_path(file, path) == NGX_ERROR) {
             return NGX_ERROR;
-        }        
+        }
     }
 }
 
diff --git a/src/core/ngx_hunk.c b/src/core/ngx_hunk.c
index d2c31d5..691387f 100644
--- a/src/core/ngx_hunk.c
+++ b/src/core/ngx_hunk.c
@@ -25,9 +25,9 @@
 
     return h;
 }
-    
+
 ngx_hunk_t *ngx_create_hunk_before(ngx_pool_t *pool, ngx_hunk_t *hunk, int size)
-{    
+{
     ngx_hunk_t *h;
 
     ngx_test_null(h, ngx_palloc(pool, sizeof(ngx_hunk_t)), NULL);
@@ -47,7 +47,7 @@
 
     } else {
         ngx_test_null(h->pre_start, ngx_palloc(pool, size), NULL);
-        h->start = h->pos = h->last = h->pre_start; 
+        h->start = h->pos = h->last = h->pre_start;
         h->end = h->post_end = h->start + size;
         h->file_pos = h->file_last = 0;
 
@@ -84,7 +84,7 @@
 
     } else {
         ngx_test_null(h->pre_start, ngx_palloc(pool, size), NULL);
-        h->start = h->pos = h->last = h->pre_start; 
+        h->start = h->pos = h->last = h->pre_start;
         h->end = h->post_end = h->start + size;
         h->file_pos = h->file_last = 0;
 
diff --git a/src/core/ngx_log.c b/src/core/ngx_log.c
index fee6018..aff3998 100644
--- a/src/core/ngx_log.c
+++ b/src/core/ngx_log.c
@@ -147,7 +147,7 @@
         n = read((ngx_fd_t) ev->data, errstr, sizeof(errstr - 1));
 
         if (n == -1) {
-            err = ngx_errno;            
+            err = ngx_errno;
             if (err == NGX_EAGAIN) {
                 return;
             }
diff --git a/src/core/ngx_modules.c b/src/core/ngx_modules.c
index 5e5f5a8..cf5458c 100644
--- a/src/core/ngx_modules.c
+++ b/src/core/ngx_modules.c
@@ -17,6 +17,9 @@
 #if (HAVE_DEVPOLL)
 extern ngx_module_t  ngx_devpoll_module;
 #endif
+#if (HAVE_AIO)
+extern ngx_module_t  ngx_aio_module;
+#endif
 
 
 extern ngx_module_t  ngx_http_module;
@@ -47,6 +50,9 @@
 #if (HAVE_DEVPOLL)
     &ngx_devpoll_module,
 #endif
+#if (HAVE_AIO)
+    &ngx_aio_module,
+#endif
 
     /* http */
 
diff --git a/src/core/ngx_os_init.h b/src/core/ngx_os_init.h
index b65932d..8a14ad0 100644
--- a/src/core/ngx_os_init.h
+++ b/src/core/ngx_os_init.h
@@ -4,23 +4,40 @@
 
 #include <ngx_config.h>
 #include <ngx_core.h>
-#if 0
-#include <ngx_connection.h>
+
+
+#define NGX_IO_SENDFILE    1
+#define NGX_IO_ZEROCOPY    2
+
+#if (HAVE_SENDFILE)
+#define NGX_HAVE_SENDFILE  NGX_IO_SENDFILE
+#else
+#define NGX_HAVE_SENDFILE  0
 #endif
 
+#if (HAVE_ZEROCOPY)
+#define NGX_HAVE_ZEROCOPY  NGX_IO_ZEROCOPY
+#else
+#define NGX_HAVE_ZEROCOPY  0
+#endif
+
+
 
 typedef struct {
     ssize_t       (*recv)(ngx_connection_t *c, char *buf, size_t size);
     void           *dummy_recv_chain;
     void           *dummy_send;
     ngx_chain_t  *(*send_chain)(ngx_connection_t *c, ngx_chain_t *in);
+    int             flags;
 } ngx_os_io_t;
 
 
 int ngx_os_init(ngx_log_t *log);
 
+
 extern ngx_os_io_t  ngx_os_io;
 extern int          ngx_max_sockets;
+extern int          ngx_inherited_nonblocking;
 
 
 #endif /* _NGX_OS_INIT_H_INCLUDED_ */