Use Windows randomness code on Cygwin
diff --git a/CHANGES b/CHANGES
index 97af365..f6b293d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -763,6 +763,9 @@
Changes between 0.9.7e and 0.9.7f [XX xxx XXXX]
+ *) Use Windows randomness collection on Cygwin.
+ [Ulf Möller]
+
*) Fix hang in EGD/PRNGD query when communication socket is closed
prematurely by EGD/PRNGD.
[Darren Tucker <dtucker@zip.com.au> via Lutz Jänicke, resolves #1014]
diff --git a/crypto/rand/rand_win.c b/crypto/rand/rand_win.c
index aaea92c..a7c2c9d 100644
--- a/crypto/rand/rand_win.c
+++ b/crypto/rand/rand_win.c
@@ -113,7 +113,7 @@
#include <openssl/rand.h>
#include "rand_lcl.h"
-#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32)
+#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN32_CYGWIN)
#include <windows.h>
#ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x0400
@@ -680,7 +680,7 @@
static void readscreen(void)
{
-#ifndef OPENSSL_SYS_WINCE
+#if !defined(OPENSSL_SYS_WINCE) && !defined(OPENSSL_SYS_WIN32_CYGWIN)
HDC hScrDC; /* screen DC */
HDC hMemDC; /* memory DC */
HBITMAP hBitmap; /* handle for our bitmap */