about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2022-08-10 15:58:01 +0000
committerEric Wong <e@80x24.org>2022-08-10 20:11:10 +0000
commit69a839362deecd86771f306f20ff993f9c9c07c1 (patch)
treeafa97ae342b24844e8702d17596f1109445df3c4
parent1c457e08d2bb3352bdddde0a3580ff37f317cc72 (diff)
downloadpublic-inbox-69a839362deecd86771f306f20ff993f9c9c07c1.tar.gz
warn/carp usage is unavoidable given Perl itself and standard
libraries, so just rely on localized $SIG{__WARN__} from
60d262483a4d6ddf (daemon: use per-listener SIG{__WARN__} callbacks, 2022-08-08)
for all error reporting.

While we're in the area, make some of the error handling more
consistent between IMAP/NNTP/POP3.
-rw-r--r--lib/PublicInbox/DS.pm4
-rw-r--r--lib/PublicInbox/DSdeflate.pm2
-rw-r--r--lib/PublicInbox/IMAP.pm12
-rw-r--r--lib/PublicInbox/NNTP.pm10
-rw-r--r--lib/PublicInbox/POP3.pm9
5 files changed, 10 insertions, 27 deletions
diff --git a/lib/PublicInbox/DS.pm b/lib/PublicInbox/DS.pm
index 5e8a6a66..26840662 100644
--- a/lib/PublicInbox/DS.pm
+++ b/lib/PublicInbox/DS.pm
@@ -660,8 +660,8 @@ sub long_step {
         if ($@ || !$self->{sock}) { # something bad happened...
                 delete $self->{long_cb};
                 my $elapsed = now() - $t0;
-                $@ and $self->err("%s during long response[$fd] - %0.6f",
-                                    $@, $elapsed);
+                $@ and warn("$@ during long response[$fd] - ",
+                                sprintf('%0.6f', $elapsed),"\n");
                 $self->out(" deferred[$fd] aborted - %0.6f", $elapsed);
                 $self->close;
         } elsif ($more) { # $self->{wbuf}:
diff --git a/lib/PublicInbox/DSdeflate.pm b/lib/PublicInbox/DSdeflate.pm
index 639690e2..539adf0f 100644
--- a/lib/PublicInbox/DSdeflate.pm
+++ b/lib/PublicInbox/DSdeflate.pm
@@ -46,7 +46,7 @@ sub enable {
         my ($class, $self) = @_;
         my ($in, $err) = Compress::Raw::Zlib::Inflate->new(%IN_OPT);
         if ($err != Z_OK) {
-                $self->err("Inflate->new failed: $err");
+                warn("Inflate->new failed: $err\n");
                 return;
         }
         bless $self, $class;
diff --git a/lib/PublicInbox/IMAP.pm b/lib/PublicInbox/IMAP.pm
index 2be1b763..0a65d87c 100644
--- a/lib/PublicInbox/IMAP.pm
+++ b/lib/PublicInbox/IMAP.pm
@@ -1165,17 +1165,11 @@ sub process_line ($$) {
         my $err = $@;
         if ($err && $self->{sock}) {
                 $l =~ s/\r?\n//s;
-                err($self, 'error from: %s (%s)', $l, $err);
+                warn("error from: $l ($err)\n");
                 $tag //= '*';
-                $res = "$tag BAD program fault - command not performed\r\n";
+                $res = \"$tag BAD program fault - command not performed\r\n";
         }
-        return 0 unless defined $res;
-        $self->write($res);
-}
-
-sub err ($$;@) {
-        my ($self, $fmt, @args) = @_;
-        printf { $self->{imapd}->{err} } $fmt."\n", @args;
+        defined($res) ? $self->write($res) : 0;
 }
 
 sub out ($$;@) {
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index ef01f448..ceaf05f6 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -72,9 +72,8 @@ sub process_line ($$) {
         my $res = eval { $req->($self, @args) };
         my $err = $@;
         if ($err && $self->{sock}) {
-                local $/ = "\n";
-                chomp($l);
-                err($self, 'error from: %s (%s)', $l, $err);
+                $l =~ s/\r?\n//s;
+                warn("error from: $l ($err)\n");
                 $res = \"503 program fault - command not performed\r\n";
         }
         defined($res) ? $self->write($res) : 0;
@@ -945,11 +944,6 @@ sub cmd_xpath ($$) {
         '223 '.join(' ', sort(@paths))."\r\n";
 }
 
-sub err ($$;@) {
-        my ($self, $fmt, @args) = @_;
-        printf { $self->{nntpd}->{err} } $fmt."\n", @args;
-}
-
 sub out ($$;@) {
         my ($self, $fmt, @args) = @_;
         printf { $self->{nntpd}->{out} } $fmt."\n", @args;
diff --git a/lib/PublicInbox/POP3.pm b/lib/PublicInbox/POP3.pm
index c993e558..82df257c 100644
--- a/lib/PublicInbox/POP3.pm
+++ b/lib/PublicInbox/POP3.pm
@@ -45,11 +45,6 @@ use constant {
 
 # XXX FIXME: duplicated stuff from NNTP.pm and IMAP.pm
 
-sub err ($$;@) {
-        my ($self, $fmt, @args) = @_;
-        printf { $self->{pop3d}->{err} } $fmt."\n", @args;
-}
-
 sub out ($$;@) {
         my ($self, $fmt, @args) = @_;
         printf { $self->{pop3d}->{out} } $fmt."\n", @args;
@@ -364,8 +359,8 @@ sub process_line ($$) {
                 \"-ERR command not recognized\r\n";
         my $err = $@;
         if ($err && $self->{sock}) {
-                chomp($l);
-                err($self, 'error from: %s (%s)', $l, $err);
+                $l =~ s/\r?\n//s;
+                warn("error from: $l ($err)\n");
                 $res = \"-ERR program fault - command not performed\r\n";
         }
         defined($res) ? $self->write($res) : 0;