diff options
author | Eric Wong <e@80x24.org> | 2019-06-28 07:37:26 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-06-29 19:59:00 +0000 |
commit | df815ac5b2614f7278ca747750ea7e92ecd0986c (patch) | |
tree | ca9cae5e61aa31666ee8ceb6cdb2d562e395b79d /lib/PublicInbox/TLS.pm | |
parent | 7c83d3e706811095cedab0bf62ac530d7b0f3a5a (diff) | |
download | public-inbox-df815ac5b2614f7278ca747750ea7e92ecd0986c.tar.gz |
We need to be careful about handling EAGAIN on write(2) failures deal with SSL_WANT_READ vs SSL_WANT_WRITE as appropriate.
Diffstat (limited to 'lib/PublicInbox/TLS.pm')
-rw-r--r-- | lib/PublicInbox/TLS.pm | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/PublicInbox/TLS.pm b/lib/PublicInbox/TLS.pm index 576c11d7..0b9a55df 100644 --- a/lib/PublicInbox/TLS.pm +++ b/lib/PublicInbox/TLS.pm @@ -13,12 +13,9 @@ sub err () { $SSL_ERROR } # returns the EPOLL event bit which matches the existing SSL error sub epollbit () { - if ($! == EAGAIN) { - return EPOLLIN if $SSL_ERROR == SSL_WANT_READ; - return EPOLLOUT if $SSL_ERROR == SSL_WANT_WRITE; - die "unexpected SSL error: $SSL_ERROR"; - } - 0; + return EPOLLIN if $SSL_ERROR == SSL_WANT_READ; + return EPOLLOUT if $SSL_ERROR == SSL_WANT_WRITE; + die "unexpected SSL error: $SSL_ERROR"; } 1; |