com php-src: Backported the patch from bug #67407 into 5.4: ext/standard/info.c
| From: | Anatol Belski | 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";
}