nginx-0.0.1-2003-06-06-18:59:20 import
diff --git a/src/os/unix/ngx_freebsd_config.h b/src/os/unix/ngx_freebsd_config.h
index 7c229a4..0a7eedd 100644
--- a/src/os/unix/ngx_freebsd_config.h
+++ b/src/os/unix/ngx_freebsd_config.h
@@ -22,6 +22,11 @@
#include <osreldate.h>
+#define QD_FMT "%qd"
+#define QX_FMT "%qx"
+#define OFF_FMT "%qd"
+
+
#ifndef HAVE_SELECT
#define HAVE_SELECT 1
#endif
diff --git a/src/os/unix/ngx_linux_config.h b/src/os/unix/ngx_linux_config.h
index b90792c..96e1d88 100644
--- a/src/os/unix/ngx_linux_config.h
+++ b/src/os/unix/ngx_linux_config.h
@@ -2,25 +2,20 @@
#define _NGX_LINUX_CONFIG_H_INCLUDED_
+#define _GNU_SOURCE /* pread, pwrite, gethostname, bzero */
+
#define _FILE_OFFSET_BITS 64
#define _LARGEFILE_SOURCE
-#define _XOPEN_SOURCE 500 /* pread, pwrite */
#include <unistd.h>
-#undef _XOPEN_SOURCE 500
-
#include <stddef.h> /* offsetof */
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <signal.h>
#include <time.h>
-
-#define __USE_BSD /* bzero */
#include <string.h>
-#undef __USE_BSD
-
#include <sys/types.h>
#include <sys/time.h>
#include <sys/select.h>
@@ -39,6 +34,11 @@
typedef unsigned char u_char;
+#define QD_FMT "%qd"
+#define QX_FMT "%qx"
+#define OFF_FMT "%qd"
+
+
#ifndef HAVE_SELECT
#define HAVE_SELECT 1
#endif
diff --git a/src/os/unix/ngx_solaris_config.h b/src/os/unix/ngx_solaris_config.h
index 31e17e1..e794644 100644
--- a/src/os/unix/ngx_solaris_config.h
+++ b/src/os/unix/ngx_solaris_config.h
@@ -5,8 +5,8 @@
#define SOLARIS 1
#define _REENTRANT
-#define _FILE_OFFSET_BITS 64 /* must be before sys/types.h */
+#define _FILE_OFFSET_BITS 64 /* must be before sys/types.h */
#include <unistd.h>
#include <stddef.h> /* offsetof */
@@ -27,6 +27,10 @@
typedef uint32_t u_int32_t;
+#define QD_FMT "%lld"
+#define QX_FMT "%llx"
+#define OFF_FMT "%lld"
+
#ifndef HAVE_SELECT
#define HAVE_SELECT 1
diff --git a/src/os/unix/ngx_types.h b/src/os/unix/ngx_types.h
index bf61ae2..8d60650 100644
--- a/src/os/unix/ngx_types.h
+++ b/src/os/unix/ngx_types.h
@@ -12,20 +12,4 @@
typedef struct stat ngx_file_info_t;
-
-#ifdef SOLARIS
-
-#define QD_FMT "%lld"
-#define QX_FMT "%llx"
-#define OFF_FMT "%lld"
-
-#else
-
-#define QD_FMT "%qd"
-#define QX_FMT "%qx"
-#define OFF_FMT "%qd"
-
-#endif
-
-
#endif /* _NGX_TYPES_H_INCLUDED_ */
diff --git a/src/os/win32/ngx_init.c b/src/os/win32/ngx_init.c
index 5292330..c57ce6c 100644
--- a/src/os/win32/ngx_init.c
+++ b/src/os/win32/ngx_init.c
@@ -26,20 +26,65 @@
int ngx_os_init(ngx_log_t *log)
{
- DWORD bytes;
- SOCKET s;
- WSADATA wsd;
+ u_int sp;
+ DWORD bytes;
+ SOCKET s;
+ WSADATA wsd;
+ OSVERSIONINFOEX osvi;
+
+ /* get Windows version */
+
+ ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+
+ osviex = GetVersionEx((OSVERSIONINFO *) &osvi);
+
+ if (osviex == 0) {
+ osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+ if (GetVersionEx((OSVERSIONINFO *) &osvi) == 0)
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_errno,
+ "GetVersionEx() failed");
+ return NGX_ERROR;
+ }
+ }
+
+ /*
+ * Windows 95 1400
+ * Windows 98 1410
+ * Windows ME 1490
+ * Windows NT 3.51 2351
+ * Windows NT 4.0 2400
+ * Windows 2000 2500
+ * Windows XP 2501
+ * Windows 2003 2502
+ */
+
+ ngx_win32_version = osvi.dwPlatformId * 1000
+ + osvi.dwMajorVersion * 100
+ + osvi.dwMinorVersion;
+
+ if (osviex) {
+ sp = osvi.wServicePackMajor * 100 + osvi.wServicePackMinor;
+
+ ngx_log_error(NGX_LOG_INFO, log, 0,
+ "OS: %u build:%u, %s, SP:%u, suite:%x, type:%u",
+ ngx_win32_version, osvi.dwBuildNumber, osvi.szCSDVersion,
+ sp, osvi.wSuiteMask, osvi.wProductType);
+
+ } else {
+ ngx_log_error(NGX_LOG_INFO, log, 0, "OS: %u build:%u, %s",
+ ngx_win32_version, osvi.dwBuildNumber, osvi.szCSDVersion);
+ }
+
/* init Winsock */
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0) {
ngx_log_error(NGX_LOG_EMERG, log, ngx_socket_errno,
- "WSAStartup failed");
+ "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);
diff --git a/src/os/win32/ngx_types.h b/src/os/win32/ngx_types.h
index cf8db97..1c4ff0c 100644
--- a/src/os/win32/ngx_types.h
+++ b/src/os/win32/ngx_types.h
@@ -16,8 +16,6 @@
typedef BY_HANDLE_FILE_INFORMATION ngx_file_info_t;
-
-
#define QD_FMT "%I64d"
#define QX_FMT "%I64x"
#define OFF_FMT "%I64d"