Avoid Windows 8 Getversion deprecated errors.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 25 Feb 2014 12:11:22 +0000 (12:11 +0000)
committerMatt Caswell <matt@openssl.org>
Tue, 13 Jan 2015 09:30:24 +0000 (09:30 +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)

Conflicts:
apps/apps.c
crypto/bio/bss_log.c

Backported by Matt Caswell <matt@openssl.org>
Reviewed-by: Tim Hudson <tjh@openss.org>
crypto/cryptlib.c
crypto/rand/rand_win.c
e_os.h

index dec3286f66d93d499734d4084257a8af7be9412b..64d9793aba89ef480c714c05d941bd526d203282 100644 (file)
@@ -512,7 +512,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 ca4044b6477f2b6782cd4746cfbeef3398783327..c75858bf588a87c878f21b7fc43b47e8b15169c5 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -360,6 +360,13 @@ static __inline 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