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>
This commit is contained in:
parent
b1741ea1fa
commit
10fa8e3999
19
deps/openssl/openssl/apps/s_client.c
vendored
19
deps/openssl/openssl/apps/s_client.c
vendored
@ -178,6 +178,13 @@ typedef unsigned int u_int;
|
|||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#endif
|
#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
|
#undef PROG
|
||||||
#define PROG s_client_main
|
#define PROG s_client_main
|
||||||
|
|
||||||
@ -1606,10 +1613,10 @@ SSL_set_tlsext_status_ids(con, ids);
|
|||||||
tv.tv_usec = 0;
|
tv.tv_usec = 0;
|
||||||
i=select(width,(void *)&readfds,(void *)&writefds,
|
i=select(width,(void *)&readfds,(void *)&writefds,
|
||||||
NULL,&tv);
|
NULL,&tv);
|
||||||
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
|
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
|
||||||
if(!i && (!_kbhit() || !read_tty) ) continue;
|
|
||||||
#else
|
|
||||||
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
|
if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
|
||||||
|
#else
|
||||||
|
if(!i && (!_kbhit() || !read_tty) ) continue;
|
||||||
#endif
|
#endif
|
||||||
} else i=select(width,(void *)&readfds,(void *)&writefds,
|
} else i=select(width,(void *)&readfds,(void *)&writefds,
|
||||||
NULL,timeoutp);
|
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_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
|
||||||
#if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
|
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
|
||||||
else if (_kbhit())
|
|
||||||
#else
|
|
||||||
else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
|
else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
|
||||||
|
#else
|
||||||
|
else if (_kbhit())
|
||||||
#endif
|
#endif
|
||||||
#elif defined (OPENSSL_SYS_NETWARE)
|
#elif defined (OPENSSL_SYS_NETWARE)
|
||||||
else if (_kbhit())
|
else if (_kbhit())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user