boringssl/crypto
David Benjamin 3c37d0aba5 Reland "Fix bssl client/server's error-handling."
Rather than printing the SSL_ERROR_* constants, print the actual error.
This should be a bit more understandable. Debugging this also uncovered
some other issues on Windows:

- We were mixing up C runtime and Winsock errors, which are separate in
  Windows.

- The thread local implementation interferes with WSAGetLastError due to
  a quirk of TlsGetValue. This could affect other Windows consumers.
  (Chromium uses a custom BIO, so it isn't affected.)

- SocketSetNonBlocking also interferes with WSAGetLastError.

- Listen for FD_CLOSE along with FD_READ. Connection close does not
  signal FD_READ. (The select loop only barely works on Windows anyway
  due to issues with stdin and line buffering, but if we take stdin out
  of the equation, FD_CLOSE can be tested.)

Change-Id: Ia8d42b5ac39ebb3045d410dd768f83a3bb88b2cb
Reviewed-on: https://boringssl-review.googlesource.com/28186
Reviewed-by: David Benjamin <davidben@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 17:19:59 +00:00
..
asn1
base64
bio
bn_extra
buf
bytestring
chacha
cipher_extra
cmac
conf
curve25519
dh
digest_extra
dsa
ec_extra
ecdh
ecdsa_extra
engine
err Reland "Fix bssl client/server's error-handling." 2018-05-07 17:19:59 +00:00
evp
fipsmodule
hkdf
hmac_extra
lhash
obj
pem
perlasm
pkcs7
pkcs8
poly1305
pool
rand_extra
rc4
rsa_extra
stack
test
x509
x509v3
CMakeLists.txt
compiler_test.cc
constant_time_test.cc
cpu-aarch64-fuchsia.c
cpu-aarch64-linux.c
cpu-arm-linux.c
cpu-arm.c
cpu-intel.c
cpu-ppc64le.c
crypto.c
ex_data.c
internal.h
mem.c
refcount_c11.c
refcount_lock.c
refcount_test.cc
self_test.cc
thread_none.c
thread_pthread.c
thread_test.cc
thread_win.c Reland "Fix bssl client/server's error-handling." 2018-05-07 17:19:59 +00:00
thread.c