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:43:04 +0000 (13:43 +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 4d47e6addaf788d264e98da5afd1c8e93d889d93..d73e60f70a04f85b2b5108f562f2b4e83f70f7f6 100644 (file)
@@ -2772,7 +2772,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 fd6e3ccb9a3c7e37c071605f5992345194b454f4..6705a3c6fb1d1041f8532d4437f35320f8f18dba 100644 (file)
@@ -860,7 +860,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 5ceeeeb950d6f9132deac10407078d10a294394c..a6db8d9da06375126d1eb76359b98d8db3923a9c 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -371,6 +371,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