Setting $SIG{__WARN__} at the top-level no longer has any effect
since we localize $SIG{__WARN__} when entering ->event_step on
a per-listener basis.
Fixes: 60d262483a4d (daemon: use per-listener SIG{__WARN__} callbacks,
2022-08-08)
---
lib/PublicInbox/Daemon.pm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm
index a2c1ed6e..7aee5c72 100644
--- a/lib/PublicInbox/Daemon.pm
+++ b/lib/PublicInbox/Daemon.pm
@@ -143,8 +143,11 @@ sub load_mod ($;$$) {
$tlsd->{$f} = $logs{$p} //= open_log_path(my $fh, $p);
warn "# $scheme://$addr $f=$p\n";
}
+ # for per-listener $SIG{__WARN__}:
my $err = $tlsd->{err};
- $tlsd->{warn_cb} = sub { print $err @_ }; # for local $SIG{__WARN__}
+ $tlsd->{warn_cb} = sub {
+ print $err @_ unless PublicInbox::Eml::warn_ignore(@_)
+ };
$opt->{'multi-accept'} and
$xn{'multi-accept'} = $opt->{'multi-accept'}->[-1];
\%xn;
@@ -698,7 +701,6 @@ sub run {
# localize GCF2C for tests:
local $PublicInbox::GitAsyncCat::GCF2C;
local $PublicInbox::Git::async_warn = 1;
- local $SIG{__WARN__} = PublicInbox::Eml::warn_ignore_cb();
local %WORKER_SIG = %WORKER_SIG;
local %POST_ACCEPT;