nginx-0.0.2-2004-03-16-10:10:12 import
diff --git a/src/os/unix/ngx_files.c b/src/os/unix/ngx_files.c
index c90a437..fbbddc6 100644
--- a/src/os/unix/ngx_files.c
+++ b/src/os/unix/ngx_files.c
@@ -3,7 +3,7 @@
 #include <ngx_core.h>
 
 
-ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
+ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
 {
     ssize_t n;
 
@@ -48,7 +48,7 @@
 }
 
 
-ssize_t ngx_write_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
+ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
 {
     ssize_t n;
 
@@ -104,7 +104,7 @@
 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *cl,
                                 off_t offset, ngx_pool_t *pool)
 {
-    char          *prev;
+    u_char        *prev;
     size_t         size;
     ssize_t        n;
     struct iovec  *iov;
@@ -133,7 +133,7 @@
 
         } else {
             ngx_test_null(iov, ngx_push_array(&io), NGX_ERROR);
-            iov->iov_base = cl->hunk->pos;
+            iov->iov_base = (void *) cl->hunk->pos;
             iov->iov_len = cl->hunk->last - cl->hunk->pos;
         }
 
@@ -146,7 +146,8 @@
 
     if (io.nelts == 1) {
         iov = io.elts;
-        return ngx_write_file(file, iov[0].iov_base, iov[0].iov_len, offset);
+        return ngx_write_file(file, (u_char *) iov[0].iov_base, iov[0].iov_len,
+                              offset);
     }
 
     if (file->sys_offset != offset) {
@@ -180,7 +181,7 @@
 
 int ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir)
 {
-    dir->dir = opendir(name->data);
+    dir->dir = opendir((const char *) name->data);
 
     if (dir->dir == NULL) {
         return NGX_ERROR;
diff --git a/src/os/unix/ngx_files.h b/src/os/unix/ngx_files.h
index 641ccfa..9952a74 100644
--- a/src/os/unix/ngx_files.h
+++ b/src/os/unix/ngx_files.h
@@ -12,7 +12,7 @@
 
 
 #define ngx_open_file(name, access, create)                                 \
-                                 open(name, access|create, 0644)
+                                 open((const char *) name, access|create, 0644)
 #define ngx_open_file_n          "open()"
 
 #define NGX_FILE_RDONLY          O_RDONLY
@@ -26,20 +26,21 @@
 #define ngx_close_file_n         "close()"
 
 
-#define ngx_delete_file          unlink
+#define ngx_delete_file(name)    unlink((const char *) name)
 #define ngx_delete_file_n        "unlink()"
 
 
 #define ngx_open_tempfile(name, persistent)                                 \
-                                 open(name, O_CREAT|O_EXCL|O_RDWR, 0600)
+                         open((const char *) name, O_CREAT|O_EXCL|O_RDWR, 0600)
 #define ngx_open_tempfile_n      "open()"
 
 
-ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset);
+ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset);
 #define ngx_read_file_n          "read()"
 
 
-ssize_t ngx_write_file(ngx_file_t *file, char *buf, size_t size, off_t offset);
+ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
+                       off_t offset);
 
 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
                                 off_t offset, ngx_pool_t *pool);
@@ -49,7 +50,7 @@
 #define ngx_rename_file_n        "rename"
 
 
-#define ngx_file_info(file, sb)  stat(file, sb)
+#define ngx_file_info(file, sb)  stat((const char *) file, sb)
 #define ngx_file_info_n          "stat()"
 
 #define ngx_fd_info(fd, sb)      fstat(fd, sb)
@@ -78,11 +79,11 @@
 #define ngx_read_dir_n           "readdir()"
 
 
-#define ngx_create_dir(name)     mkdir(name, 0700)
+#define ngx_create_dir(name)     mkdir((const char *) name, 0700)
 #define ngx_create_dir_n         "mkdir()"
 
 
-#define ngx_delete_dir           rmdir
+#define ngx_delete_dir(name)     rmdir((const char *) name)
 #define ngx_delete_dir_n         "rmdir()"
 
 
@@ -92,7 +93,7 @@
 #else
 #define ngx_de_namelen(dir)      ngx_strlen((dir)->de->d_name)
 #endif
-#define ngx_de_info(name, dir)   stat(name, &(dir)->info)
+#define ngx_de_info(name, dir)   stat((const char *) name, &(dir)->info)
 #define ngx_de_info_n            "stat()"
 #define ngx_de_is_dir(dir)       (S_ISDIR((dir)->info.st_mode))
 #define ngx_de_is_file(dir)      (S_ISREG((dir)->info.st_mode))
diff --git a/src/os/unix/ngx_freebsd_sendfile_chain.c b/src/os/unix/ngx_freebsd_sendfile_chain.c
index 2fcd6f3..fb2898d 100644
--- a/src/os/unix/ngx_freebsd_sendfile_chain.c
+++ b/src/os/unix/ngx_freebsd_sendfile_chain.c
@@ -14,8 +14,8 @@
  * it never sends a header with a part of the file in one packet until
  * FreeBSD 5.2-STABLE.  Besides over the fast ethernet connection sendfile()
  * can send the partially filled packets, i.e. the 8 file pages can be sent
- * as 11 full 1460-bytes packets, then one incomplete 324-bytes packet, and
- * then again 11 full 1460-bytes packets.
+ * as the 11 full 1460-bytes packets, then one incomplete 324-bytes packet,
+ * and then again the 11 full 1460-bytes packets.
  *
  * So we use the TCP_NOPUSH option (similar to Linux's TCP_CORK)
  * to postpone the sending - it not only sends a header and the first part
@@ -31,7 +31,7 @@
 ngx_chain_t *ngx_freebsd_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
 {
     int              rc;
-    char            *prev;
+    u_char          *prev;
     off_t            sent, fprev;
     size_t           hsize, fsize;
     ssize_t          size;
@@ -93,7 +93,7 @@
 
             } else {
                 ngx_test_null(iov, ngx_push_array(&header), NGX_CHAIN_ERROR);
-                iov->iov_base = cl->hunk->pos;
+                iov->iov_base = (void *) cl->hunk->pos;
                 iov->iov_len = cl->hunk->last - cl->hunk->pos;
             }
 
@@ -145,7 +145,7 @@
                 } else {
                     ngx_test_null(iov, ngx_push_array(&trailer),
                                   NGX_CHAIN_ERROR);
-                    iov->iov_base = cl->hunk->pos;
+                    iov->iov_base = (void *) cl->hunk->pos;
                     iov->iov_len = cl->hunk->last - cl->hunk->pos;
                 }
 
diff --git a/src/os/unix/ngx_linux_sendfile_chain.c b/src/os/unix/ngx_linux_sendfile_chain.c
index 463fdda..25932b5 100644
--- a/src/os/unix/ngx_linux_sendfile_chain.c
+++ b/src/os/unix/ngx_linux_sendfile_chain.c
@@ -22,7 +22,7 @@
 ngx_chain_t *ngx_linux_sendfile_chain(ngx_connection_t *c, ngx_chain_t *in)
 {
     int              rc;
-    char            *prev;
+    u_char          *prev;
     off_t            fprev;
     size_t           size, fsize, sent;
     ngx_int_t        eintr;
@@ -71,7 +71,7 @@
 
             } else {
                 ngx_test_null(iov, ngx_push_array(&header), NGX_CHAIN_ERROR);
-                iov->iov_base = cl->hunk->pos;
+                iov->iov_base = (void *) cl->hunk->pos;
                 iov->iov_len = cl->hunk->last - cl->hunk->pos;
             }
 
diff --git a/src/os/unix/ngx_os.h b/src/os/unix/ngx_os.h
index 85e5dbe..77484d4 100644
--- a/src/os/unix/ngx_os.h
+++ b/src/os/unix/ngx_os.h
@@ -24,9 +24,9 @@
 
 
 typedef struct {
-    ssize_t       (*recv)(ngx_connection_t *c, char *buf, size_t size);
+    ssize_t       (*recv)(ngx_connection_t *c, u_char *buf, size_t size);
     ssize_t       (*recv_chain)(ngx_connection_t *c, ngx_chain_t *in);
-    ssize_t       (*send)(ngx_connection_t *c, char *buf, size_t size);
+    ssize_t       (*send)(ngx_connection_t *c, u_char *buf, size_t size);
     ngx_chain_t  *(*send_chain)(ngx_connection_t *c, ngx_chain_t *in);
     int             flags;
 } ngx_os_io_t;
@@ -39,7 +39,7 @@
 int ngx_posix_post_conf_init(ngx_log_t *log);
 
 
-ssize_t ngx_unix_recv(ngx_connection_t *c, char *buf, size_t size);
+ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size);
 ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *entry);
 ngx_chain_t *ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in);
 
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 6ee6c9a..76d6bb5 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -333,7 +333,7 @@
 
 static void ngx_master_exit(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
 {
-    char  *name;
+    u_char  *name;
 
     if (ngx_inherited && getppid() > 1) {
         name = ctx->pid.name.data;
@@ -355,7 +355,7 @@
 static void ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
 {
     sigset_t          set;
-    ngx_int_t         i;
+    ngx_uint_t        i;
     ngx_listening_t  *ls;
     ngx_core_conf_t  *ccf;
 #if (NGX_THREADS)
diff --git a/src/os/unix/ngx_process_cycle.h b/src/os/unix/ngx_process_cycle.h
index c863b62..0c55afa 100644
--- a/src/os/unix/ngx_process_cycle.h
+++ b/src/os/unix/ngx_process_cycle.h
@@ -8,7 +8,7 @@
 
 typedef struct {
      ngx_file_t    pid;
-     char         *name;
+     u_char       *name;
      int           argc;
      char *const  *argv;
 } ngx_master_ctx_t;
diff --git a/src/os/unix/ngx_readv_chain.c b/src/os/unix/ngx_readv_chain.c
index a1b9837..9aee564 100644
--- a/src/os/unix/ngx_readv_chain.c
+++ b/src/os/unix/ngx_readv_chain.c
@@ -8,7 +8,7 @@
 
 ssize_t ngx_readv_chain(ngx_connection_t *c, ngx_chain_t *chain)
 {
-    char          *prev;
+    u_char        *prev;
     ssize_t        n, size;
     struct iovec  *iov;
     ngx_err_t      err;
@@ -58,7 +58,7 @@
 
         } else {
             ngx_test_null(iov, ngx_push_array(&io), NGX_ERROR);
-            iov->iov_base = chain->hunk->last;
+            iov->iov_base = (void *) chain->hunk->last;
             iov->iov_len = chain->hunk->end - chain->hunk->last;
         }
 
diff --git a/src/os/unix/ngx_recv.c b/src/os/unix/ngx_recv.c
index b8a9659..37e70c6 100644
--- a/src/os/unix/ngx_recv.c
+++ b/src/os/unix/ngx_recv.c
@@ -6,7 +6,7 @@
 
 #if (HAVE_KQUEUE)
 
-ssize_t ngx_unix_recv(ngx_connection_t *c, char *buf, size_t size)
+ssize_t ngx_unix_recv(ngx_connection_t *c, u_char *buf, size_t size)
 {
     ssize_t       n;
     ngx_err_t     err;
diff --git a/src/os/unix/ngx_solaris_sendfilev_chain.c b/src/os/unix/ngx_solaris_sendfilev_chain.c
index f428261..1c755e8 100644
--- a/src/os/unix/ngx_solaris_sendfilev_chain.c
+++ b/src/os/unix/ngx_solaris_sendfilev_chain.c
@@ -12,7 +12,7 @@
 ngx_chain_t *ngx_solaris_sendfilev_chain(ngx_connection_t *c, ngx_chain_t *in)
 {
     int             fd;
-    char           *prev;
+    u_char         *prev;
     off_t           fprev;
     size_t          sent, size;
     ssize_t         n;
diff --git a/src/os/unix/ngx_time.h b/src/os/unix/ngx_time.h
index b8c6422..45e81ea 100644
--- a/src/os/unix/ngx_time.h
+++ b/src/os/unix/ngx_time.h
@@ -25,6 +25,15 @@
 #define ngx_tm_zone    tm_zone
 #endif
 
+#define ngx_tm_sec_t   int
+#define ngx_tm_min_t   int
+#define ngx_tm_hour_t  int
+#define ngx_tm_mday_t  int
+#define ngx_tm_mon_t   int
+#define ngx_tm_year_t  int
+#define ngx_tm_wday_t  int
+
+
 
 void ngx_localtime(ngx_tm_t *tm);
 
diff --git a/src/os/unix/ngx_writev_chain.c b/src/os/unix/ngx_writev_chain.c
index 43d5c12..d680375 100644
--- a/src/os/unix/ngx_writev_chain.c
+++ b/src/os/unix/ngx_writev_chain.c
@@ -6,7 +6,7 @@
 
 ngx_chain_t *ngx_writev_chain(ngx_connection_t *c, ngx_chain_t *in)
 {
-    char            *prev;
+    u_char          *prev;
     ssize_t          n, size;
     off_t            sent;
     struct iovec    *iov;
@@ -51,7 +51,7 @@
 
             } else {
                 ngx_test_null(iov, ngx_push_array(&io), NGX_CHAIN_ERROR);
-                iov->iov_base = cl->hunk->pos;
+                iov->iov_base = (void *) cl->hunk->pos;
                 iov->iov_len = cl->hunk->last - cl->hunk->pos;
                 prev = cl->hunk->last;
             }
diff --git a/src/os/win32/ngx_files.c b/src/os/win32/ngx_files.c
index df0d865..ffc09b6 100644
--- a/src/os/win32/ngx_files.c
+++ b/src/os/win32/ngx_files.c
@@ -3,10 +3,10 @@
 #include <ngx_core.h>
 
 
-ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
+ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
 {
     long        high_offset;
-    DWORD       n;
+    u_long      n;
     ngx_err_t   err;
     OVERLAPPED  ovlp, *povlp;
 
@@ -20,8 +20,9 @@
         if (file->offset != offset) {
 
             /*
-             * the maximum file size on FAT16 is 2G, but on FAT32 it's 4G so we
-             * need to use high_offset because a single offset is signed value
+             * the maximum file size on FAT16 is 2G, but on FAT32
+             * the size is 4G so we need to use high_offset
+             * because a single offset is signed value
              */
 
             high_offset = (long) (offset >> 32);
@@ -47,8 +48,8 @@
     } else {
         ovlp.Internal = 0;
         ovlp.InternalHigh = 0;
-        ovlp.Offset = (DWORD) offset;
-        ovlp.OffsetHigh = (DWORD) (offset >> 32);
+        ovlp.Offset = (u_long) offset;
+        ovlp.OffsetHigh = (u_long) (offset >> 32);
         ovlp.hEvent = NULL;
 
         povlp = &ovlp;
@@ -65,10 +66,10 @@
 }
 
 
-ssize_t ngx_write_file(ngx_file_t *file, char *buf, size_t size, off_t offset)
+ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset)
 {
     long        high_offset;
-    DWORD       n;
+    u_long      n;
     ngx_err_t   err;
     OVERLAPPED  ovlp, *povlp;
 
@@ -82,8 +83,9 @@
         if (file->offset != offset) {
 
             /*
-             * the maximum file size on FAT16 is 2G, but on FAT32 it's 4G so we
-             * need to use high_offset because a single offset is signed value
+             * the maximum file size on FAT16 is 2G, but on FAT32
+             * the size is 4G so we need to use high_offset
+             * because a single offset is signed value
              */
 
             high_offset = (long) (offset >> 32);
@@ -109,8 +111,8 @@
     } else {
         ovlp.Internal = 0;
         ovlp.InternalHigh = 0;
-        ovlp.Offset = (DWORD) offset;
-        ovlp.OffsetHigh = (DWORD) (offset >> 32);
+        ovlp.Offset = (u_long) offset;
+        ovlp.OffsetHigh = (u_long) (offset >> 32);
         ovlp.hEvent = NULL;
 
         povlp = &ovlp;
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index 1b13f4c..730ee71 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -23,7 +23,7 @@
 
 
 #define ngx_open_file(name, access, create)                                 \
-            CreateFile(name, access,                                        \
+            CreateFile((const char *) name, access,                         \
                        FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,  \
                        NULL, create, FILE_FLAG_BACKUP_SEMANTICS, NULL)
 /*
@@ -43,7 +43,7 @@
 
 
 #define ngx_open_tempfile(name, persistent)                                 \
-            CreateFile(name,                                                \
+            CreateFile((const char *) name,                                 \
                     GENERIC_READ|GENERIC_WRITE,                             \
                     FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,     \
                     NULL,                                                   \
@@ -139,10 +139,11 @@
 
 
 
-ssize_t ngx_read_file(ngx_file_t *file, char *buf, size_t size, off_t offset);
+ssize_t ngx_read_file(ngx_file_t *file, u_char *buf, size_t size, off_t offset);
 #define ngx_read_file_n             "ReadFile()"
 
-ssize_t ngx_write_file(ngx_file_t *file, char *buf, size_t size, off_t offset);
+ssize_t ngx_write_file(ngx_file_t *file, u_char *buf, size_t size,
+                       off_t offset);
 
 ssize_t ngx_write_chain_to_file(ngx_file_t *file, ngx_chain_t *ce,
                                 off_t offset, ngx_pool_t *pool);
diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c
index 7b26d6b..9291710 100644
--- a/src/os/win32/ngx_process_cycle.c
+++ b/src/os/win32/ngx_process_cycle.c
@@ -13,8 +13,14 @@
 
 sig_atomic_t  ngx_reap;
 sig_atomic_t  ngx_timer;
+
+#endif
+
 sig_atomic_t  ngx_terminate;
 sig_atomic_t  ngx_quit;
+
+#if 0
+
 sig_atomic_t  ngx_noaccept;
 sig_atomic_t  ngx_reconfigure;
 sig_atomic_t  ngx_reopen;
@@ -23,6 +29,7 @@
 #endif
 
 
+
 void ngx_master_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
 {
     ngx_int_t  i;
diff --git a/src/os/win32/ngx_process_cycle.h b/src/os/win32/ngx_process_cycle.h
index c863b62..0c55afa 100644
--- a/src/os/win32/ngx_process_cycle.h
+++ b/src/os/win32/ngx_process_cycle.h
@@ -8,7 +8,7 @@
 
 typedef struct {
      ngx_file_t    pid;
-     char         *name;
+     u_char       *name;
      int           argc;
      char *const  *argv;
 } ngx_master_ctx_t;
diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h
index a40dfb4..afffe61 100644
--- a/src/os/win32/ngx_time.h
+++ b/src/os/win32/ngx_time.h
@@ -23,6 +23,15 @@
 #define ngx_tm_year    wYear
 #define ngx_tm_wday    wDayOfWeek
 
+#define ngx_tm_sec_t   u_short
+#define ngx_tm_min_t   u_short
+#define ngx_tm_hour_t  u_short
+#define ngx_tm_mday_t  u_short
+#define ngx_tm_mon_t   u_short
+#define ngx_tm_year_t  u_short
+#define ngx_tm_wday_t  u_short
+
+
 #define ngx_msleep     Sleep
 #define ngx_localtime  GetLocalTime
 
diff --git a/src/os/win32/ngx_win32_config.h b/src/os/win32/ngx_win32_config.h
index 38cca91..3b3f711 100644
--- a/src/os/win32/ngx_win32_config.h
+++ b/src/os/win32/ngx_win32_config.h
@@ -27,13 +27,17 @@
 #ifdef _MSC_VER
 #pragma warning(default:4201)
 
+/* disable some "-W4" level warnings */
+
+#pragma warning(disable:4054)
+#pragma warning(disable:4055)
 /* unreferenced formal parameter */
 #pragma warning(disable:4100)
-
-/* STUB */
-#if 0
 #pragma warning(disable:4127)
-#endif
+#pragma warning(disable:4214)
+#pragma warning(disable:4702)
+#pragma warning(disable:4706)
+
 #endif