about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-01-13 19:06:19 -1200
committerEric Wong <e@80x24.org>2021-01-14 23:14:08 +0000
commit14055cedd9fc6ec593528a243ff52b6684df70c0 (patch)
tree912598258e5af4e8d3aafd6a3367c8ba8f83e6e4
parent529c7edd3cc62f0e328517b6628706251a33099e (diff)
downloadpublic-inbox-14055cedd9fc6ec593528a243ff52b6684df70c0.tar.gz
This lets us get rid of the Sys::Syslog import and __WARN__
override in LeiXSearch, though we still need it with
->atfork_child_wq.
-rw-r--r--lib/PublicInbox/LEI.pm7
-rw-r--r--lib/PublicInbox/LeiXSearch.pm7
2 files changed, 5 insertions, 9 deletions
diff --git a/lib/PublicInbox/LEI.pm b/lib/PublicInbox/LEI.pm
index fd2b722c..a8fea16d 100644
--- a/lib/PublicInbox/LEI.pm
+++ b/lib/PublicInbox/LEI.pm
@@ -26,6 +26,7 @@ use Text::Wrap qw(wrap);
 use File::Path qw(mkpath);
 use File::Spec;
 our $quit = \&CORE::exit;
+our $current_lei;
 my ($recv_cmd, $send_cmd);
 my $GLP = Getopt::Long::Parser->new;
 $GLP->configure(qw(gnu_getopt no_ignore_case auto_abbrev));
@@ -447,7 +448,7 @@ sub optparse ($$$) {
 
 sub dispatch {
         my ($self, $cmd, @argv) = @_;
-        local $SIG{__WARN__} = sub { err($self, @_) };
+        local $current_lei = $self; # for __WARN__
         return _help($self, 'no command given') unless defined($cmd);
         my $func = "lei_$cmd";
         $func =~ tr/-/_/;
@@ -849,7 +850,9 @@ sub lazy_start {
         # STDOUT will cause the calling `lei' client process to finish
         # reading the <$daemon> pipe.
         openlog($path, 'pid', 'user');
-        local $SIG{__WARN__} = sub { syslog('warning', "@_") };
+        local $SIG{__WARN__} = sub {
+                $current_lei ? err($current_lei, @_) : syslog('warning', "@_");
+        };
         my $on_destroy = PublicInbox::OnDestroy->new($$, sub {
                 syslog('crit', "$@") if $@;
         });
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm
index d06b6f1d..68889e81 100644
--- a/lib/PublicInbox/LeiXSearch.pm
+++ b/lib/PublicInbox/LeiXSearch.pm
@@ -8,7 +8,6 @@ package PublicInbox::LeiXSearch;
 use strict;
 use v5.10.1;
 use parent qw(PublicInbox::LeiSearch PublicInbox::IPC);
-use Sys::Syslog qw(syslog);
 
 sub new {
         my ($class) = @_;
@@ -187,12 +186,6 @@ sub do_query {
         }
 }
 
-sub ipc_atfork_child {
-        my ($self) = @_;
-        $SIG{__WARN__} = sub { syslog('warning', "@_") };
-        $self->SUPER::ipc_atfork_child; # PublicInbox::IPC
-}
-
 sub ipc_atfork_prepare {
         my ($self) = @_;
         $self->wq_set_recv_modes(qw[+<&= >&= >&= +<&=]);