diff options
author | Fedor Indutny <fedor.indutny@gmail.com> | 2013-12-11 21:19:04 +0400 |
---|---|---|
committer | Timothy J Fontaine <tjfontaine@gmail.com> | 2014-08-13 20:26:53 +0400 |
commit | 6b97c2e98627b5189e01b871f9130b5efc41988d (patch) | |
tree | 9f16e1bf1afd2da70a4177dfe962f22a2ec53479 | |
parent | 5d824c89c9c513bf56be82eb6432290920a0ebc2 (diff) |
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 <fedor@indutny.com>
-rw-r--r-- | deps/openssl/openssl/apps/s_client.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/deps/openssl/openssl/apps/s_client.c b/deps/openssl/openssl/apps/s_client.c index 4625467d990..973e58e160a 100644 --- a/deps/openssl/openssl/apps/s_client.c +++ b/deps/openssl/openssl/apps/s_client.c @@ -178,6 +178,13 @@ typedef unsigned int u_int; #include <fcntl.h> #endif +/* Use Windows API with STD_INPUT_HANDLE when checking for input? + Don't look at OPENSSL_SYS_MSDOS for this, since it is always defined if + OPENSSL_SYS_WINDOWS is defined */ +#if defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_WINCE) && defined(STD_INPUT_HANDLE) +#define OPENSSL_USE_STD_INPUT_HANDLE +#endif + #undef PROG #define PROG s_client_main @@ -1606,10 +1613,10 @@ SSL_set_tlsext_status_ids(con, ids); tv.tv_usec = 0; i=select(width,(void *)&readfds,(void *)&writefds, NULL,&tv); -#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS) - if(!i && (!_kbhit() || !read_tty) ) continue; -#else +#if defined(OPENSSL_USE_STD_INPUT_HANDLE) if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue; +#else + if(!i && (!_kbhit() || !read_tty) ) continue; #endif } else i=select(width,(void *)&readfds,(void *)&writefds, NULL,timeoutp); @@ -1814,10 +1821,10 @@ printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240 } #if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS) -#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS) - else if (_kbhit()) -#else +#if defined(OPENSSL_USE_STD_INPUT_HANDLE) else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) +#else + else if (_kbhit()) #endif #elif defined (OPENSSL_SYS_NETWARE) else if (_kbhit()) |