Skip to content

Commit b910613

Browse files
committed
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 eebdf7a commit b910613

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

deps/openssl/openssl/apps/s_client.c

+13-6
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

@@ -1630,10 +1637,10 @@ SSL_set_tlsext_status_ids(con, ids);
16301637
tv.tv_usec = 0;
16311638
i=select(width,(void *)&readfds,(void *)&writefds,
16321639
NULL,&tv);
1633-
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
1634-
if(!i && (!_kbhit() || !read_tty) ) continue;
1635-
#else
1640+
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
16361641
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
1642+
#else
1643+
if(!i && (!_kbhit() || !read_tty) ) continue;
16371644
#endif
16381645
} else i=select(width,(void *)&readfds,(void *)&writefds,
16391646
NULL,timeoutp);
@@ -1838,10 +1845,10 @@ printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240
18381845
}
18391846

18401847
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
1841-
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
1842-
else if (_kbhit())
1843-
#else
1848+
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
18441849
else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
1850+
#else
1851+
else if (_kbhit())
18451852
#endif
18461853
#elif defined (OPENSSL_SYS_NETWARE)
18471854
else if (_kbhit())

0 commit comments

Comments
 (0)