about summary refs log tree commit homepage
path: root/lib/PublicInbox/TLS.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-06-28 07:37:26 +0000
committerEric Wong <e@80x24.org>2019-06-29 19:59:00 +0000
commitdf815ac5b2614f7278ca747750ea7e92ecd0986c (patch)
treeca9cae5e61aa31666ee8ceb6cdb2d562e395b79d /lib/PublicInbox/TLS.pm
parent7c83d3e706811095cedab0bf62ac530d7b0f3a5a (diff)
downloadpublic-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.pm9
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;