nginx-0.0.1-2003-11-11-21:13:43 import
diff --git a/src/os/win32/ngx_files.h b/src/os/win32/ngx_files.h
index a29e333..0565eaf 100644
--- a/src/os/win32/ngx_files.h
+++ b/src/os/win32/ngx_files.h
@@ -69,8 +69,8 @@
#define ngx_file_uniq(fi) (*(ngx_file_uniq_t *) &fi.nFileIndexHigh)
-/* There are 134774 days between 1 Jan 1970 and 1 Jan 1601,
- 11644473600 seconds or 11644473600,000,000,0 100-nanosecond intervals */
+
+/* 116444736000000000 is commented in src/os/win32/ngx_time.c */
#define ngx_file_mtime(fi) \
(time_t) (((((unsigned __int64) fi.ftLastWriteTime.dwHighDateTime << 32) \
diff --git a/src/os/win32/ngx_time.c b/src/os/win32/ngx_time.c
new file mode 100644
index 0000000..8497c53
--- /dev/null
+++ b/src/os/win32/ngx_time.c
@@ -0,0 +1,29 @@
+
+#include <ngx_config.h>
+#include <ngx_core.h>
+
+
+void ngx_gettimeofday(struct timeval *tp)
+{
+ uint64_t intervals;
+ FILETIME ft;
+
+ GetSystemTimeAsFileTime(&ft);
+
+ /*
+ * A file time is a 64-bit value that represents the number
+ * of 100-nanosecond intervals that have elapsed since
+ * 12:00 A.M. January 1, 1601 (UTC).
+ *
+ * Between January 1, 1970 (Epoch) and January 1, 1601 there are
+ * 134744 days,
+ * 11644473600 seconds or
+ * 11644473600,000,000,0 100-nanosecond intervals.
+ */
+
+ intervals = ((uint64_t) ft.dwHighDateTime << 32) | ft.dwLowDateTime;
+ intervals -= 116444736000000000;
+
+ tp->tv_sec = intervals / 10000000;
+ tp->tv_usec = (intervals % 10000000) / 10;
+}
diff --git a/src/os/win32/ngx_time.h b/src/os/win32/ngx_time.h
index 4cd84e5..36f8918 100644
--- a/src/os/win32/ngx_time.h
+++ b/src/os/win32/ngx_time.h
@@ -6,8 +6,10 @@
#include <ngx_core.h>
-typedef unsigned int ngx_msec_t;
-#define NGX_MAX_MSEC ~0
+typedef uint64_t ngx_epoch_msec_t;
+
+typedef u_int ngx_msec_t;
+#define NGX_MAX_MSEC (ngx_msec_t) -1
typedef SYSTEMTIME ngx_tm_t;
@@ -23,10 +25,16 @@
#define ngx_msleep Sleep
#define ngx_localtime GetLocalTime
-#define ngx_msec GetTickCount
-/* STUB */
-#define ngx_time() time(NULL)
+
+struct timeval {
+ long tv_sec;
+ long tv_usec;
+};
+
+
+void ngx_gettimeofday(struct timeval *tp);
+
#endif /* _NGX_TIME_H_INCLUDED_ */