Skip to content
This repository was archived by the owner on Apr 22, 2023. It is now read-only.

Commit 6b97c2e

Browse files
indutnytjfontaine
authored andcommitted
openssl: fix keypress requirement in apps on win32
Original source: http://openssl.6102.n7.nabble.com/PATCH-s-client-Fix-keypress-requirement-with-redirected-input-on-Windows-td46787.html Reviewed-By: Fedor Indutny <[email protected]>
1 parent 5d824c8 commit 6b97c2e

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

deps/openssl/openssl/apps/s_client.c

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,13 @@ typedef unsigned int u_int;
178178
#include <fcntl.h>
179179
#endif
180180

181+
/* Use Windows API with STD_INPUT_HANDLE when checking for input?
182+
Don't look at OPENSSL_SYS_MSDOS for this, since it is always defined if
183+
OPENSSL_SYS_WINDOWS is defined */
184+
#if defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_WINCE) && defined(STD_INPUT_HANDLE)
185+
#define OPENSSL_USE_STD_INPUT_HANDLE
186+
#endif
187+
181188
#undef PROG
182189
#define PROG s_client_main
183190

@@ -1606,10 +1613,10 @@ SSL_set_tlsext_status_ids(con, ids);
16061613
tv.tv_usec = 0;
16071614
i=select(width,(void *)&readfds,(void *)&writefds,
16081615
NULL,&tv);
1609-
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
1610-
if(!i && (!_kbhit() || !read_tty) ) continue;
1611-
#else
1616+
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
16121617
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
1618+
#else
1619+
if(!i && (!_kbhit() || !read_tty) ) continue;
16131620
#endif
16141621
} else i=select(width,(void *)&readfds,(void *)&writefds,
16151622
NULL,timeoutp);
@@ -1814,10 +1821,10 @@ printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240
18141821
}
18151822

18161823
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
1817-
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
1818-
else if (_kbhit())
1819-
#else
1824+
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
18201825
else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
1826+
#else
1827+
else if (_kbhit())
18211828
#endif
18221829
#elif defined (OPENSSL_SYS_NETWARE)
18231830
else if (_kbhit())

0 commit comments

Comments
 (0)