Fix TLS error message race. Due to less handshakes in TLS 1.3 an
authorbluhm <bluhm@openbsd.org>
Mon, 19 Apr 2021 10:58:31 +0000 (10:58 +0000)
committerbluhm <bluhm@openbsd.org>
Mon, 19 Apr 2021 10:58:31 +0000 (10:58 +0000)
EPIPE error may be reported instead of a TLS alert.

regress/usr.sbin/syslogd/args-tls-cafile-default.pl

index 4407331..a779771 100644 (file)
@@ -7,8 +7,12 @@
 
 use strict;
 use warnings;
+use Errno ':POSIX';
 use Socket;
 
+my @errors = (EPIPE);
+my $errors = "(". join("|", map { $! = $_ } @errors). ")";
+
 our %args = (
     syslogd => {
        loghost => '@tls://localhost:$connectport',
@@ -32,8 +36,9 @@ our %args = (
        exit => 255,
        loggrep => {
            qr/listen sock: (127.0.0.1|::1) \d+/ => 1,
-           qr/SSL accept attempt failed error:/.
-               qr/.*ST_ACCEPT:tlsv1 alert unknown ca/ => 1,
+           qr/IO::Socket::SSL socket accept failed: /.
+               qr/.*,SSL accept attempt failed error:.*/.
+               qr/(ST_ACCEPT:tlsv1 alert unknown ca|$errors)/ => 1,
            get_testgrep() => 0,
        },
     },