nginx-0.0.1-2003-06-03-19:42:58 import
diff --git a/src/os/unix/ngx_errno.h b/src/os/unix/ngx_errno.h
index 91ac3ba..feb9e4a 100644
--- a/src/os/unix/ngx_errno.h
+++ b/src/os/unix/ngx_errno.h
@@ -5,6 +5,7 @@
 #include <errno.h>
 #include <string.h>
 
+
 typedef int               ngx_err_t;
 
 #define NGX_ENOENT        ENOENT
diff --git a/src/os/unix/ngx_time.h b/src/os/unix/ngx_time.h
index 5cd791d..4b5fa59 100644
--- a/src/os/unix/ngx_time.h
+++ b/src/os/unix/ngx_time.h
@@ -24,7 +24,7 @@
 ngx_msec_t ngx_msec(void);
 
 /* STUB */
-#define ngx_time()  time(NULL)
+#define ngx_time()     time(NULL)
 
 
 #endif /* _NGX_TIME_H_INCLUDED_ */
diff --git a/src/os/win32/ngx_errno.h b/src/os/win32/ngx_errno.h
index 2378811..e94dbe0 100644
--- a/src/os/win32/ngx_errno.h
+++ b/src/os/win32/ngx_errno.h
@@ -3,22 +3,24 @@
 
 
 #include <ngx_config.h>
+#include <ngx_core.h>
 
-typedef DWORD             ngx_err_t;
+
+typedef DWORD                      ngx_err_t;
 
 #define ngx_errno                  GetLastError()
 #define ngx_socket_errno           WSAGetLastError()
 #define ngx_set_socket_errno(err)  WSASetLastError(err)
 
-#define NGX_ENOENT        ERROR_FILE_NOT_FOUND
-#define NGX_EACCES        ERROR_ACCESS_DENIED
-#define NGX_EEXIST        ERROR_FILE_EXISTS
-#define NGX_ENOTDIR       ERROR_PATH_NOT_FOUND
-#define NGX_EAGAIN        WSAEWOULDBLOCK
-#define NGX_EINPROGRESS   WSAEINPROGRESS
-#define NGX_EADDRINUSE    WSAEADDRINUSE
-#define NGX_ECONNRESET    ECONNRESET
-#define NGX_ETIMEDOUT     WSAETIMEDOUT
+#define NGX_ENOENT                 ERROR_FILE_NOT_FOUND
+#define NGX_EACCES                 ERROR_ACCESS_DENIED
+#define NGX_EEXIST                 ERROR_FILE_EXISTS
+#define NGX_ENOTDIR                ERROR_PATH_NOT_FOUND
+#define NGX_EAGAIN                 WSAEWOULDBLOCK
+#define NGX_EINPROGRESS            WSAEINPROGRESS
+#define NGX_EADDRINUSE             WSAEADDRINUSE
+#define NGX_ECONNRESET             ECONNRESET
+#define NGX_ETIMEDOUT              WSAETIMEDOUT
 
 int ngx_strerror_r(ngx_err_t err, char *errstr, size_t size);
 
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index 60e132b..3734bdc 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -1,9 +1,7 @@
 
 #include <ngx_config.h>
-
 #include <ngx_core.h>
-#include <ngx_types.h>
-#include <ngx_file.h>
+
 
 ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
 {
@@ -18,3 +16,15 @@
 
     return n;
 }
+
+
+int ngx_file_append_mode(ngx_fd_t *fd)
+{
+    if (SetFilePointer(fd, 0, NULL, FILE_END) == 0xFFFFFFFF) {
+        if (GetLastError() != NO_ERROR) {
+            return NGX_ERROR;
+        }
+    }
+
+    return NGX_OK;
+}
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index 08525b9..a23c0e2 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -3,14 +3,12 @@
 
 
 #include <ngx_config.h>
-
-#include <ngx_types.h>
-#include <ngx_file.h>
+#include <ngx_core.h>
 
 
 /* INVALID_FILE_ATTRIBUTES specified but never defined at least in VC6SP2 */
 #ifndef INVALID_FILE_ATTRIBUTES
-#define INVALID_FILE_ATTRIBUTES  0xFFFFFFFF
+#define INVALID_FILE_ATTRIBUTES     0xFFFFFFFF
 #endif
 
 #define NGX_INVALID_FILE            INVALID_HANDLE_VALUE
@@ -19,7 +17,7 @@
 
 
 #define ngx_open_file(name, access, create)                                 \
-            CreateFile(name, flags,                                         \
+            CreateFile(name, access,                                        \
                        FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,  \
                        NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL)
 /*
@@ -31,6 +29,11 @@
 #define NGX_FILE_RDWR               GENERIC_READ|GENERIC_WRITE
 #define NGX_FILE_CREATE_OR_OPEN     OPEN_ALWAYS
 #define NGX_FILE_OPEN               OPEN_EXISTING
+#define NGX_FILE_APPEND             0
+
+
+int ngx_file_append_mode(ngx_fd_t fd);
+#define ngx_file_append_mode_n      "SetFilePointer()"
 
 
 #define ngx_open_tempfile(name, persistent)                                 \
@@ -46,7 +49,6 @@
 #define ngx_open_tempfile_n         "CreateFile()"
 
 
-
 #define ngx_close_file              CloseHandle
 #define ngx_close_file_n            "CloseHandle()"
 
diff --git a/src/os/win32/ngx_init.c b/src/os/win32/ngx_init.c
index 4f356a1..5292330 100644
--- a/src/os/win32/ngx_init.c
+++ b/src/os/win32/ngx_init.c
@@ -14,11 +14,73 @@
 };
 
 
+/* Should these pointers be per protocol ? */
+LPFN_ACCEPTEX              acceptex;
+LPFN_GETACCEPTEXSOCKADDRS  getacceptexsockaddrs;
+LPFN_TRANSMITFILE          transmitfile;
+
+static GUID ae_guid = WSAID_ACCEPTEX;
+static GUID as_guid = WSAID_GETACCEPTEXSOCKADDRS;
+static GUID tf_guid = WSAID_TRANSMITFILE;
+
+
 int ngx_os_init(ngx_log_t *log)
 {
-    if (ngx_init_sockets(log) == NGX_ERROR) {
+    DWORD    bytes;
+    SOCKET   s;
+    WSADATA  wsd;
+
+    /* init Winsock */
+
+    if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) {
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+                      "WSAStartup failed");
         return NGX_ERROR;
     }
 
+    ngx_log_error(NGX_LOG_INFO, log, 0, "max sockets: %d", wsd.iMaxSockets);
+
+    /* get AcceptEx(), GetAcceptExSockAddrs() and TransmitFile() addresses */
+
+    s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);
+    if (s == -1) {
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+                      ngx_socket_n " %s falied");
+        return NGX_ERROR;
+    }
+
+    if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &ae_guid, sizeof(GUID),
+                 &acceptex, sizeof(LPFN_ACCEPTEX), &bytes, NULL, NULL) == -1) {
+
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+                      "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
+                               "WSAID_ACCEPTEX) failed");
+        return NGX_ERROR;
+    }
+
+    if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &as_guid, sizeof(GUID),
+                 &getacceptexsockaddrs, sizeof(LPFN_GETACCEPTEXSOCKADDRS),
+                 &bytes, NULL, NULL) == -1) {
+
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+                      "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
+                               "WSAID_ACCEPTEX) failed");
+        return NGX_ERROR;
+    }
+
+    if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &tf_guid, sizeof(GUID),
+                 &transmitfile, sizeof(LPFN_TRANSMITFILE), &bytes,
+                                                           NULL, NULL) == -1) {
+        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
+                      "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
+                               "WSAID_TRANSMITFILE) failed");
+        return NGX_ERROR;
+    }
+
+    if (ngx_close_socket(s) == -1) {
+        ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno,
+                      ngx_close_socket_n " failed");
+    }
+
     return NGX_OK;
 }
diff --git a/src/os/win32/ngx_os_init.h b/src/os/win32/ngx_os_init.h
index 5c445ac..4a00a3a 100644
--- a/src/os/win32/ngx_os_init.h
+++ b/src/os/win32/ngx_os_init.h
@@ -3,7 +3,7 @@
 
 
 #include <ngx_config.h>
-#include <ngx_log.h>
+#include <ngx_core.h>
 
 
 int ngx_os_init(ngx_log_t *log);
diff --git a/src/os/win32/ngx_socket.c b/src/os/win32/ngx_socket.c
index f289a33..e3f6f5c 100644
--- a/src/os/win32/ngx_socket.c
+++ b/src/os/win32/ngx_socket.c
@@ -1,77 +1,8 @@
 
 #include <ngx_config.h>
-
 #include <ngx_core.h>
-#include <ngx_log.h>
-#include <ngx_errno.h>
-#include <ngx_socket.h>
 
 
-/* These pointers should be per protocol ? */
-LPFN_ACCEPTEX              acceptex;
-LPFN_GETACCEPTEXSOCKADDRS  getacceptexsockaddrs;
-LPFN_TRANSMITFILE          transmitfile;
-
-static GUID ae_guid = WSAID_ACCEPTEX;
-static GUID as_guid = WSAID_GETACCEPTEXSOCKADDRS;
-static GUID tf_guid = WSAID_TRANSMITFILE;
-
-
-int ngx_init_sockets(ngx_log_t *log)
-{
-    DWORD    bytes;
-    SOCKET   s;
-    WSADATA  wsd;
-
-    if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) {
-        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
-                      "WSAStartup failed");
-        return NGX_ERROR;
-    }
-
-    s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);
-    if (s == -1) {
-        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
-                      ngx_socket_n " %s falied");
-        return NGX_ERROR;
-    }
-
-    if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &ae_guid, sizeof(GUID),
-                 &acceptex, sizeof(LPFN_ACCEPTEX), &bytes, NULL, NULL) == -1) {
-
-        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
-                      "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
-                               "WSAID_ACCEPTEX) failed");
-        return NGX_ERROR;
-    }
-
-    if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &as_guid, sizeof(GUID),
-                 &getacceptexsockaddrs, sizeof(LPFN_GETACCEPTEXSOCKADDRS),
-                 &bytes, NULL, NULL) == -1) {
-
-        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
-                      "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
-                               "WSAID_ACCEPTEX) failed");
-        return NGX_ERROR;
-    }
-
-    if (WSAIoctl(s, SIO_GET_EXTENSION_FUNCTION_POINTER, &tf_guid, sizeof(GUID),
-                 &transmitfile, sizeof(LPFN_TRANSMITFILE), &bytes,
-                                                           NULL, NULL) == -1) {
-        ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
-                      "WSAIoctl(SIO_GET_EXTENSION_FUNCTION_POINTER, "
-                               "WSAID_TRANSMITFILE) failed");
-        return NGX_ERROR;
-    }
-
-    if (ngx_close_socket(s) == -1) {
-        ngx_log_error(NGX_LOG_ALERT, log, ngx_socket_errno,
-                      ngx_close_socket_n " failed");
-    }
-
-    return NGX_OK;
-}
-
 int ngx_nonblocking(ngx_socket_t s)
 {
     unsigned long  nb = 1;
@@ -79,6 +10,7 @@
     return ioctlsocket(s, FIONBIO, &nb);
 }
 
+
 int ngx_blocking(ngx_socket_t s)
 {
     unsigned long  nb = 0;
diff --git a/src/os/win32/ngx_socket.h b/src/os/win32/ngx_socket.h
index f94d45c..f86a39a 100644
--- a/src/os/win32/ngx_socket.h
+++ b/src/os/win32/ngx_socket.h
@@ -3,7 +3,8 @@
 
 
 #include <ngx_config.h>
-#include <ngx_log.h>
+#include <ngx_core.h>
+
 
 #define NGX_WRITE_SHUTDOWN SD_SEND
 
@@ -12,7 +13,6 @@
 typedef SOCKET  ngx_socket_t;
 typedef int     socklen_t;
 
-int ngx_init_sockets(ngx_log_t *log);
 
 #define ngx_socket(af, type, proto, flags)                                    \
             WSASocket(af, type, proto, NULL, 0, flags)
diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h
index 25eef95..4cd84e5 100644
--- a/src/os/win32/ngx_time.h
+++ b/src/os/win32/ngx_time.h
@@ -2,7 +2,9 @@
 #define _NGX_TIME_H_INCLUDED_
 
 
-#include <windows.h>
+#include <ngx_config.h>
+#include <ngx_core.h>
+
 
 typedef unsigned int   ngx_msec_t;
 #define NGX_MAX_MSEC   ~0
@@ -24,7 +26,7 @@
 #define ngx_msec       GetTickCount
 
 /* STUB */
-#define ngx_time()  time(NULL)
+#define ngx_time()     time(NULL)
 
 
 #endif /* _NGX_TIME_H_INCLUDED_ */
diff --git a/src/os/win32/ngx_types.h b/src/os/win32/ngx_types.h
index d5f0d92..cf8db97 100644
--- a/src/os/win32/ngx_types.h
+++ b/src/os/win32/ngx_types.h
@@ -3,6 +3,7 @@
 
 
 #include <ngx_config.h>
+#include <ngx_core.h>
 
 
 typedef unsigned __int32            u_int32_t;