From 791a685c0ab4c4160593688d0fc3acb5da19efbb Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 13 Apr 2011 15:37:25 -0700 Subject: Identify Windows Server 2008 and 2008 R2, added Win 8 detection for future-proofing. Ported from Phoenix, patch by Tank Master --- linden/indra/llcommon/llsys.cpp | 58 +++++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 17 deletions(-) (limited to 'linden/indra') diff --git a/linden/indra/llcommon/llsys.cpp b/linden/indra/llcommon/llsys.cpp index d729d98..95dd2e5 100644 --- a/linden/indra/llcommon/llsys.cpp +++ b/linden/indra/llcommon/llsys.cpp @@ -177,39 +177,64 @@ LLOSInfo::LLOSInfo() : case VER_PLATFORM_WIN32_NT: { // Test for the product. - if(osvi.dwMajorVersion <= 4) + if (osvi.dwMajorVersion <= 4) { mOSStringSimple = "Microsoft Windows NT "; } - else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) + else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 0) { mOSStringSimple = "Microsoft Windows 2000 "; } - else if(osvi.dwMajorVersion ==5 && osvi.dwMinorVersion == 1) + else if (osvi.dwMajorVersion ==5 && osvi.dwMinorVersion == 1) { mOSStringSimple = "Microsoft Windows XP "; } - else if(osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) + else if (osvi.dwMajorVersion == 5 && osvi.dwMinorVersion == 2) { - if(osvi.wProductType == VER_NT_WORKSTATION) + if (osvi.wProductType == VER_NT_WORKSTATION) + { mOSStringSimple = "Microsoft Windows XP x64 Edition "; - else - mOSStringSimple = "Microsoft Windows Server 2003 "; + } + else + { + mOSStringSimple = "Microsoft Windows Server 2003 "; + } } - else if(osvi.dwMajorVersion == 6 && osvi.dwMinorVersion <= 1) + else if (osvi.dwMajorVersion == 6 && osvi.dwMinorVersion <= 2) { - if(osvi.dwMinorVersion == 0) + if (osvi.dwMinorVersion == 0) { - mOSStringSimple = "Microsoft Windows Vista "; + if (osvi.wProductType == VER_NT_WORKSTATION) + { + mOSStringSimple = "Microsoft Windows Vista "; + } + else + { + mOSStringSimple = "Windows Server 2008 "; + } + } - else if(osvi.dwMinorVersion == 1) + else if (osvi.dwMinorVersion == 1) { - mOSStringSimple = "Microsoft Windows 7 "; + if (osvi.wProductType == VER_NT_WORKSTATION) + { + mOSStringSimple = "Microsoft Windows 7 "; + } + else + { + mOSStringSimple = "Windows Server 2008 R2 "; + } } - - if(osvi.wProductType != VER_NT_WORKSTATION) + else if (osvi.dwMinorVersion == 2) { - mOSStringSimple += "Server "; + if (osvi.wProductType == VER_NT_WORKSTATION) + { + mOSStringSimple = "Microsoft Windows 8 "; + } + else + { + mOSStringSimple = "Windows Server 2012 "; + } } ///get native system info if available.. @@ -314,8 +339,7 @@ LLOSInfo::LLOSInfo() : std::string compatibility_mode; if(got_shell32_version) { - if(osvi.dwMajorVersion != shell32_major - || osvi.dwMinorVersion != shell32_minor) + if(osvi.dwMajorVersion != shell32_major || osvi.dwMinorVersion != shell32_minor) { compatibility_mode = llformat(" compatibility mode. real ver: %d.%d (Build %d)", shell32_major, -- cgit v1.1