Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Detecting and logging Windows versions
Also send it with peer-info as IV_PLAT_VER. Signed-off-by: Lev Stipakov <lstipakov@gmail.com> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1451422957-23951-1-git-send-email-lstipakov@gmail.com> URL: http://article.gmane.org/gmane.network.openvpn.devel/10904 Signed-off-by: Gert Doering <gert@greenie.muc.de>
- Loading branch information
Showing
11 changed files
with
187 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
/** | ||
* This file is part of the mingw-w64 runtime package. | ||
* No warranty is given; refer to the file DISCLAIMER within this package. | ||
*/ | ||
|
||
#ifndef _INC_VERSIONHELPERS | ||
#define _INC_VERSIONHELPERS | ||
|
||
#include <winapifamily.h> | ||
|
||
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && !defined(__WIDL__) | ||
|
||
#ifdef __cplusplus | ||
#define VERSIONHELPERAPI inline bool | ||
#else | ||
#define VERSIONHELPERAPI FORCEINLINE BOOL | ||
#endif | ||
|
||
#define _WIN32_WINNT_WINBLUE 0x0603 | ||
|
||
VERSIONHELPERAPI IsWindowsVersionOrGreater(WORD major, WORD minor, WORD servpack) | ||
{ | ||
OSVERSIONINFOEXW vi = {sizeof(vi),major,minor,0,0,{0},servpack}; | ||
return VerifyVersionInfoW(&vi, VER_MAJORVERSION|VER_MINORVERSION|VER_SERVICEPACKMAJOR, | ||
VerSetConditionMask(VerSetConditionMask(VerSetConditionMask(0, | ||
VER_MAJORVERSION,VER_GREATER_EQUAL), | ||
VER_MINORVERSION,VER_GREATER_EQUAL), | ||
VER_SERVICEPACKMAJOR, VER_GREATER_EQUAL)); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsXPOrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 0); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsXPSP1OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 1); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsXPSP2OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 2); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsXPSP3OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINXP), LOBYTE(_WIN32_WINNT_WINXP), 3); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsVistaOrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 0); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsVistaSP1OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 1); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsVistaSP2OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_VISTA), LOBYTE(_WIN32_WINNT_VISTA), 2); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindows7OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 0); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindows7SP1OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN7), LOBYTE(_WIN32_WINNT_WIN7), 1); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindows8OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN8), LOBYTE(_WIN32_WINNT_WIN8), 0); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindows8Point1OrGreater(void) { | ||
return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINBLUE), LOBYTE(_WIN32_WINNT_WINBLUE), 0); | ||
} | ||
|
||
VERSIONHELPERAPI IsWindowsServer(void) { | ||
OSVERSIONINFOEXW vi = {sizeof(vi),0,0,0,0,{0},0,0,0,VER_NT_WORKSTATION}; | ||
return !VerifyVersionInfoW(&vi, VER_PRODUCT_TYPE, VerSetConditionMask(0, VER_PRODUCT_TYPE, VER_EQUAL)); | ||
} | ||
|
||
#endif | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters