From 32976017fbbfdaa7ef68d85ddfe58f4cf90746c4 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 24 Nov 2019 00:22:26 +0000 Subject: [PATCH] t/nntpd-tls: sometimes SSL_connect succeeds quickly It seems caching can happen within OpenSSL or negotiation can be delayed in some cases. In any case, don't barf on PublicInbox::TLS::epollbit() when connect_SSL succeeds unexpectedly. --- t/nntpd-tls.t | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/t/nntpd-tls.t b/t/nntpd-tls.t index 0b6afcef..4e71e82d 100644 --- a/t/nntpd-tls.t +++ b/t/nntpd-tls.t @@ -120,8 +120,14 @@ for my $args ( my $slow = tcp_connect($nntps, Blocking => 0); $slow = IO::Socket::SSL->start_SSL($slow, SSL_startHandshake => 0, %o); my $slow_done = $slow->connect_SSL; - diag('W: connect_SSL early OK, slow client test invalid') if $slow_done; - my @poll = (fileno($slow), PublicInbox::TLS::epollbit()); + my @poll; + if ($slow_done) { + diag('W: connect_SSL early OK, slow client test invalid'); + use PublicInbox::Syscall qw(EPOLLIN EPOLLOUT); + @poll = (fileno($slow), EPOLLIN | EPOLLOUT); + } else { + @poll = (fileno($slow), PublicInbox::TLS::epollbit()); + } # we should call connect_SSL much later... # NNTPS -- 2.44.0