aboutsummaryrefslogtreecommitdiff
path: root/src/os/win32/ngx_win32_init.c
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2004-03-09 19:47:07 +0000
committerIgor Sysoev <igor@sysoev.ru>2004-03-09 19:47:07 +0000
commitfc5a10aedcdd8cf261ecc164941562bc52fe415d (patch)
treedc6ad97805a315afca82e852717f84debb30eb54 /src/os/win32/ngx_win32_init.c
parent833823cbb89482710779c59206b77c197c3747d2 (diff)
downloadnginx-fc5a10aedcdd8cf261ecc164941562bc52fe415d.tar.gz
nginx-fc5a10aedcdd8cf261ecc164941562bc52fe415d.zip
nginx-0.0.2-2004-03-09-22:47:07 import
Diffstat (limited to 'src/os/win32/ngx_win32_init.c')
-rw-r--r--src/os/win32/ngx_win32_init.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/os/win32/ngx_win32_init.c b/src/os/win32/ngx_win32_init.c
index aaeca21b8..c4ffc1121 100644
--- a/src/os/win32/ngx_win32_init.c
+++ b/src/os/win32/ngx_win32_init.c
@@ -17,6 +17,13 @@ ngx_os_io_t ngx_os_io = {
};
+typedef struct {
+ WORD wServicePackMinor;
+ WORD wSuiteMask;
+ BYTE wProductType;
+} ngx_osviex_stub_t;
+
+
/* Should these pointers be per protocol ? */
LPFN_ACCEPTEX acceptex;
LPFN_GETACCEPTEXSOCKADDRS getacceptexsockaddrs;
@@ -29,11 +36,12 @@ static GUID tf_guid = WSAID_TRANSMITFILE;
int ngx_os_init(ngx_log_t *log)
{
- u_int osviex;
- DWORD bytes;
- SOCKET s;
- WSADATA wsd;
- OSVERSIONINFOEX osvi;
+ u_int osviex;
+ DWORD bytes;
+ SOCKET s;
+ WSADATA wsd;
+ OSVERSIONINFOEX osvi;
+ ngx_osviex_stub_t *osviex_stub;
/* get Windows version */
@@ -75,17 +83,16 @@ int ngx_os_init(ngx_log_t *log)
ngx_win32_version += osvi.wServicePackMajor * 10
+ osvi.wServicePackMinor;
- ngx_log_error(NGX_LOG_INFO, log, 0,
- "OS: %u build:%u, \"%s\", suite:%x, type:%u",
- ngx_win32_version, osvi.dwBuildNumber, osvi.szCSDVersion,
- osvi.wReserved[0], osvi.wReserved[1]);
+ /*
+ * the MSVC 6.0 SP2 defines wSuiteMask and wProductType
+ * as WORD wReserved[2]
+ */
+ osviex_stub = (ngx_osviex_stub_t *) &osvi.wServicePackMinor;
-#if 0
ngx_log_error(NGX_LOG_INFO, log, 0,
"OS: %u build:%u, \"%s\", suite:%x, type:%u",
ngx_win32_version, osvi.dwBuildNumber, osvi.szCSDVersion,
- osvi.wSuiteMask, osvi.wProductType);
-#endif
+ osviex_stub->wSuiteMask, osviex_stub->wProductType);
} else {
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) {
@@ -123,6 +130,10 @@ int ngx_os_init(ngx_log_t *log)
return NGX_ERROR;
}
+ if (ngx_win32_version < NGX_WIN_NT) {
+ return NGX_OK;
+ }
+
/* get AcceptEx(), GetAcceptExSockAddrs() and TransmitFile() addresses */
s = ngx_socket(AF_INET, SOCK_STREAM, IPPROTO_IP, 0);