boringssl/tool
David Benjamin 28385db6e1 Fix bssl select loop on Windows.
While |WaitForMultipleObjects| works for both sockets and stdin, the
latter is often a line-buffered console. The |HANDLE| is considered
readable if there are any console events available, but reading blocks
until a full line is available. (In POSIX, line buffering is implemented
in the kernel via termios, which is differently concerning, but does
mean |select| works as expected.)

So that |Wait| reflects final stdin read, we spawn a stdin reader thread
that writes to an in-memory buffer and signals a |WSAEVENT| to
coordinate with the socket. This is kind of silly, but it works.

I tried just writing it to a pipe, but it appears
|WaitForMultipleObjects| does not work on pipes!

Change-Id: I2bfa323fa91aad7d2035bb1fe86ee6f54b85d811
Reviewed-on: https://boringssl-review.googlesource.com/28165
Reviewed-by: Steven Valdez <svaldez@google.com>
Commit-Queue: Steven Valdez <svaldez@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
2018-05-07 19:04:00 +00:00
..
args.cc Revert "Move C++ helpers into |bssl| namespace." 2016-07-12 08:09:33 -07:00
ciphers.cc Use getters in tools/ciphers.cc and add -openssl-name flag. 2017-08-18 00:10:31 +00:00
client.cc Reland "Fix bssl client/server's error-handling." 2018-05-07 17:19:59 +00:00
CMakeLists.txt Add a basic signing tool. 2017-04-05 23:32:13 +00:00
const.cc Unwind multiprime RSA support. 2017-04-12 23:14:57 +00:00
digest.cc Correctness fixes for NaCl and other platforms. 2016-11-09 19:06:10 +00:00
file.cc Add a basic signing tool. 2017-04-05 23:32:13 +00:00
generate_ed25519.cc Add early data input from file. 2017-11-30 17:29:45 +00:00
genrsa.cc Unwind RSA_generate_multi_prime_key. 2017-04-11 18:15:20 +00:00
internal.h Add early data input from file. 2017-11-30 17:29:45 +00:00
pkcs12.cc Work around language and compiler bug in memcpy, etc. 2016-12-21 20:34:47 +00:00
rand.cc Fix miscellaneous clang-tidy warnings. 2017-08-01 20:39:46 +00:00
server.cc Reland "Fix bssl client/server's error-handling." 2018-05-07 17:19:59 +00:00
sign.cc Align EVP_PKEY Ed25519 API with upstream. 2017-06-12 12:04:11 +00:00
speed.cc tool: Move the RSA specific code from |Speed| to |SpeedRSA|. 2018-04-13 17:35:13 +00:00
tool.cc First part of the FIPS module. 2017-04-07 00:05:34 +00:00
transport_common.cc Fix bssl select loop on Windows. 2018-05-07 19:04:00 +00:00
transport_common.h Reland "Fix bssl client/server's error-handling." 2018-05-07 17:19:59 +00:00