]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/Qspawn.pm
daemon: use ->can to check for IO::Socket::SSL
[public-inbox.git] / lib / PublicInbox / Qspawn.pm
index 34b6912fea558dd01ee924f463e180f946fd26e1..c09e8d2c227b0b6bc01ddc1a13598d72c73d6c72 100644 (file)
@@ -234,7 +234,11 @@ sub rd_hdr ($) {
                                length($$hdr_buf));
                if (defined($r)) {
                        $total_rd += $r;
-                       $ret = $ph_cb->($total_rd, $hdr_buf, $ph_arg);
+                       eval { $ret = $ph_cb->($total_rd, $hdr_buf, $ph_arg) };
+                       if ($@) {
+                               log_err($self->{psgi_env}, "parse_hdr: $@");
+                               $ret = [ 500, [], [ "Internal error\n" ] ];
+                       }
                } else {
                        # caller should notify us when it's ready:
                        return if $! == EAGAIN;
@@ -277,10 +281,6 @@ sub psgi_return_init_cb {
                                        ${$self->{hdr_buf}}, $filter);
                $wcb->($r);
        }
-
-       # Workaround a leak under Perl 5.16.3 when combined with
-       # Plack::Middleware::Deflater:
-       $wcb = undef;
 }
 
 sub psgi_return_start { # may run later, much later...