com php-src: Backported the patch from bug #67407 into 5.4: ext/standard/info.c

From: Date: Tue, 08 Jul 2014 07:52:35 +0000
Subject: com php-src: Backported the patch from bug #67407 into 5.4: ext/standard/info.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-79321@lists.php.net to get a copy of this message
Commit: 03214a2aef23e6f7597cbe8eaa834af46a5fa74c Author: Anatol Belski <ab@php.net> Tue, 8 Jul 2014 09:52:35 +0200 Parents: 494034901e6743861d17b1fe60e8d3d0c6477f8c Branches: PHP-5.4 PHP-5.5 PHP-5.6 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=03214a2aef23e6f7597cbe8eaa834af46a5fa74c Log: Backported the patch from bug #67407 into 5.4 Bugs: https://bugs.php.net/67407 Changed paths: M ext/standard/info.c Diff: diff --git a/ext/standard/info.c b/ext/standard/info.c index 0f15bbe..98b4a80 100644 --- a/ext/standard/info.c +++ b/ext/standard/info.c @@ -328,7 +328,7 @@ char* php_get_windows_name() } if (VER_PLATFORM_WIN32_NT==osvi.dwPlatformId && osvi.dwMajorVersion > 4 ) { - if (osvi.dwMajorVersion == 6) { + if (osvi.dwMajorVersion == 6) { if( osvi.dwMinorVersion == 0 ) { if( osvi.wProductType == VER_NT_WORKSTATION ) { major = "Windows Vista"; @@ -342,6 +342,38 @@ char* php_get_windows_name() } else { major = "Windows Server 2008 R2"; } + } else if ( osvi.dwMinorVersion == 2 ) { + /* could be Windows 8/Windows Server 2012, could be Windows 8.1/Windows Server 2012 R2 */ + OSVERSIONINFOEX osvi81; + DWORDLONG dwlConditionMask = 0; + int op = VER_GREATER_EQUAL; + + ZeroMemory(&osvi81, sizeof(OSVERSIONINFOEX)); + osvi81.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); + osvi81.dwMajorVersion = 6; + osvi81.dwMinorVersion = 3; + osvi81.wServicePackMajor = 0; + + VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, op); + VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION, op); + VER_SET_CONDITION(dwlConditionMask, VER_SERVICEPACKMAJOR, op); + + if (VerifyVersionInfo(&osvi81, + VER_MAJORVERSION | VER_MINORVERSION | VER_SERVICEPACKMAJOR, + dwlConditionMask)) { + osvi.dwMinorVersion = 3; /* Windows 8.1/Windows Server 2012 R2 */ + if( osvi.wProductType == VER_NT_WORKSTATION ) { + major = "Windows 8.1"; + } else { + major = "Windows Server 2012 R2"; + } + } else { + if( osvi.wProductType == VER_NT_WORKSTATION ) { + major = "Windows 8"; + } else { + major = "Windows Server 2012"; + } + } } else { major = "Unknown Windows version"; }

« previous php.cvs (#79321) next »