openssl: fix keypress requirement in apps on win32 · nodejs/node@880fba9

Original file line numberDiff line numberDiff line change

@@ -180,6 +180,13 @@ typedef unsigned int u_int;

180180

# include <fcntl.h>

181181

#endif

182182
183+

/* Use Windows API with STD_INPUT_HANDLE when checking for input?

184+

Don't look at OPENSSL_SYS_MSDOS for this, since it is always defined if

185+

OPENSSL_SYS_WINDOWS is defined */

186+

#if defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_WINCE) && defined(STD_INPUT_HANDLE)

187+

#define OPENSSL_USE_STD_INPUT_HANDLE

188+

#endif

189+
183190

#undef PROG

184191

#define PROG s_client_main

185192

@@ -1792,17 +1799,16 @@ int MAIN(int argc, char **argv)

17921799

tv.tv_usec = 0;

17931800

i = select(width, (void *)&readfds, (void *)&writefds,

17941801

NULL, &tv);

1795-

# if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)

1796-

if (!i && (!_kbhit() || !read_tty))

1797-

continue;

1798-

# else

1802+

#if defined(OPENSSL_USE_STD_INPUT_HANDLE)

17991803

if (!i && (!((_kbhit())

18001804

|| (WAIT_OBJECT_0 ==

18011805

WaitForSingleObject(GetStdHandle

18021806

(STD_INPUT_HANDLE),

18031807

0)))

18041808

|| !read_tty))

18051809

continue;

1810+

#else

1811+

if(!i && (!_kbhit() || !read_tty) ) continue;

18061812

# endif

18071813

} else

18081814

i = select(width, (void *)&readfds, (void *)&writefds,

@@ -2004,12 +2010,12 @@ int MAIN(int argc, char **argv)

20042010

}

20052011

}

20062012

#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)

2007-

# if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)

2008-

else if (_kbhit())

2009-

# else

2013+

#if defined(OPENSSL_USE_STD_INPUT_HANDLE)

20102014

else if ((_kbhit())

20112015

|| (WAIT_OBJECT_0 ==

20122016

WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))

2017+

#else

2018+

else if (_kbhit())

20132019

# endif

20142020

#elif defined (OPENSSL_SYS_NETWARE)

20152021

else if (_kbhit())