Avoid Windows 8 Getversion deprecated errors.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 25 Feb 2014 12:11:22 +0000 (12:11 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 25 Feb 2014 13:42:25 +0000 (13:42 +0000)
Windows 8 SDKs complain that GetVersion() is deprecated.

We only use GetVersion like this:

(GetVersion() < 0x80000000)

which checks if the Windows version is NT based. Use a macro check_winnt()
which uses GetVersion() on older SDK versions and true otherwise.
(cherry picked from commit a4cc3c8041104896d51ae12ef7b678c31808ce52)

apps/apps.c
crypto/bio/bss_log.c
crypto/cryptlib.c
crypto/rand/rand_win.c
e_os.h

index 1096eee4cfaea7db8d6f061fb6fc32bb5a1d4cbf..8a6a9a29a7cd6721d65fb8a604a1cdf321e17b16 100644 (file)
@@ -2841,7 +2841,7 @@ double app_tminterval(int stop,int usertime)
 
        if (proc==NULL)
                {
-               if (GetVersion() < 0x80000000)
+               if (check_winnt())
                        proc = OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,
                                                GetCurrentProcessId());
                if (proc==NULL) proc = (HANDLE)-1;
index b7dce5c1a27b18ad49a38eca6d5160ffe6a8b93b..2227b2b52d475509af4401d24870884cab5268ac 100644 (file)
@@ -245,7 +245,7 @@ static int MS_CALLBACK slg_puts(BIO *bp, const char *str)
 
 static void xopenlog(BIO* bp, char* name, int level)
 {
-       if (GetVersion() < 0x80000000)
+       if (check_winnt())
                bp->ptr = RegisterEventSourceA(NULL,name);
        else
                bp->ptr = NULL;
index 304c6b70627b2aeb88abe71a6863cfef2302bd6f..0b77d8b7d0e05b73e237d9a64fc43c3bc13bb95a 100644 (file)
@@ -889,7 +889,7 @@ void OPENSSL_showfatal (const char *fmta,...)
 
 #if defined(_WIN32_WINNT) && _WIN32_WINNT>=0x0333
     /* this -------------v--- guards NT-specific calls */
-    if (GetVersion() < 0x80000000 && OPENSSL_isservice() > 0)
+    if (check_winnt() && OPENSSL_isservice() > 0)
     {  HANDLE h = RegisterEventSource(0,_T("OPENSSL"));
        const TCHAR *pmsg=buf;
        ReportEvent(h,EVENTLOG_ERROR_TYPE,0,0,0,1,0,&pmsg,0);
index 5d134e186bb03025b8b6ad718d74ff8dff2e6b7e..34ffcd23f9a0979176a8293d95a64a353b040a74 100644 (file)
@@ -750,7 +750,7 @@ static void readscreen(void)
   int          y;              /* y-coordinate of screen lines to grab */
   int          n = 16;         /* number of screen lines to grab at a time */
 
-  if (GetVersion() < 0x80000000 && OPENSSL_isservice()>0)
+  if (check_winnt() && OPENSSL_isservice()>0)
     return;
 
   /* Create a screen DC and a memory DC compatible to screen DC */
diff --git a/e_os.h b/e_os.h
index 79c1392573405d07876caabd734a41b660a39bbc..6a0aad1de72f1cca086a57bf945af292670b43cc 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -368,6 +368,13 @@ static unsigned int _strlen31(const char *str)
 #    define DEFAULT_HOME  "C:"
 #  endif
 
+/* Avoid Windows 8 SDK GetVersion deprecated problems */
+#if defined(_MSC_VER) && _MSC_VER>=1800
+#  define check_winnt() (1)
+#else
+#  define check_winnt() (GetVersion() < 0x80000000)
+#endif 
+
 #else /* The non-microsoft world */
 
 #  ifdef OPENSSL_SYS_VMS