aboutsummaryrefslogtreecommitdiff
path: root/lib/connect.c
diff options
context:
space:
mode:
authorSteve Holme <steve_holme@hotmail.com>2014-01-15 20:11:02 +0000
committerSteve Holme <steve_holme@hotmail.com>2014-01-15 20:21:01 +0000
commitc7a76bb056f31e1cf4766dd219d9ef5cb4e3463d (patch)
tree3deca9f1c51083673c944dd106aa6c88e25b2e04 /lib/connect.c
parent8b984641f2015d31901db37636929c0007ec0c75 (diff)
win32: Fixed use of deprecated function 'GetVersionInfoEx' for VC12
Starting with Visual Studio 2013 (VC12) and Windows 8.1 the GetVersionInfoEx() function has been marked as deprecated and it's return value atered. Updated connect.c and curl_sspi.c to use VerifyVersionInfo() where possible, which has been available since Windows 2000.
Diffstat (limited to 'lib/connect.c')
-rw-r--r--lib/connect.c24
1 files changed, 21 insertions, 3 deletions
diff --git a/lib/connect.c b/lib/connect.c
index 0816af2d4..16ad524df 100644
--- a/lib/connect.c
+++ b/lib/connect.c
@@ -916,19 +916,38 @@ void Curl_sndbufset(curl_socket_t sockfd)
int val = CURL_MAX_WRITE_SIZE + 32;
int curval = 0;
int curlen = sizeof(curval);
+ DWORD majorVersion = 6;
- OSVERSIONINFO osver;
static int detectOsState = DETECT_OS_NONE;
if(detectOsState == DETECT_OS_NONE) {
+#if !defined(VerifyVersionInfo)
+ OSVERSIONINFO osver;
+
memset(&osver, 0, sizeof(osver));
osver.dwOSVersionInfoSize = sizeof(osver);
+
detectOsState = DETECT_OS_PREVISTA;
if(GetVersionEx(&osver)) {
- if(osver.dwMajorVersion >= 6)
+ if(osver.dwMajorVersion >= majorVersion)
detectOsState = DETECT_OS_VISTA_OR_LATER;
}
+#else
+ ULONGLONG majorVersionMask;
+ OSVERSIONINFOEX osver;
+
+ memset(&osver, 0, sizeof(osver));
+ osver.dwOSVersionInfoSize = sizeof(osver);
+ osver.dwMajorVersion = majorVersion;
+ majorVersionMask = VerSetConditionMask(0, VER_MAJORVERSION, VER_EQUAL);
+
+ if(VerifyVersionInfo(&osver, VER_MAJORVERSION, majorVersionMask))
+ detectOsState = DETECT_OS_VISTA_OR_LATER;
+ else
+ detectOsState = DETECT_OS_PREVISTA;
+#endif
}
+
if(detectOsState == DETECT_OS_VISTA_OR_LATER)
return;
@@ -940,7 +959,6 @@ void Curl_sndbufset(curl_socket_t sockfd)
}
#endif
-
/*
* singleipconnect()
*