Mercurial > hg > nginx
diff src/os/win32/ngx_init.c @ 102:7e86d028d8f0
nginx-0.0.1-2003-06-06-18:59:20 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 06 Jun 2003 14:59:20 +0000 |
parents | 7ebc8b7fb816 |
children |
line wrap: on
line diff
--- a/src/os/win32/ngx_init.c +++ b/src/os/win32/ngx_init.c @@ -26,20 +26,65 @@ static GUID tf_guid = WSAID_TRANSMITFILE 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);