]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei: ->child_error less error-prone
authorEric Wong <e@80x24.org>
Fri, 3 Sep 2021 08:54:22 +0000 (08:54 +0000)
committerEric Wong <e@80x24.org>
Fri, 3 Sep 2021 08:55:05 +0000 (08:55 +0000)
I was calling "child_error(1, ...)" in a few places where I meant
to be calling "child_error(1 << 8, ...)" and inadvertantly
triggering SIGHUP in script/lei.  Since giving a zero exit code
to child_error makes no sense, just allow falsy values to
default to 1 << 8.

lib/PublicInbox/LEI.pm
lib/PublicInbox/LeiBlob.pm
lib/PublicInbox/LeiIndex.pm
lib/PublicInbox/LeiInput.pm
lib/PublicInbox/LeiLcat.pm
lib/PublicInbox/LeiRediff.pm
lib/PublicInbox/LeiUp.pm

index 9e9aa165acc1f689bac09b69b5ac93068f647659..8b6c1d36f179e8969510ed3f4cf4e85c2c61cb1d 100644 (file)
@@ -532,6 +532,7 @@ sub puts ($;@) { out(shift, map { "$_\n" } @_) }
 
 sub child_error { # passes non-fatal curl exit codes to user
        my ($self, $child_error, $msg) = @_; # child_error is $?
+       $child_error ||= 1 << 8;
        $self->err($msg) if $msg;
        if ($self->{pkt_op_p}) { # to top lei-daemon
                $self->{pkt_op_p}->pkt_do('child_error', $child_error);
@@ -1341,7 +1342,7 @@ sub DESTROY {
        if (my $counters = delete $self->{counters}) {
                for my $k (sort keys %$counters) {
                        my $nr = $counters->{$k};
-                       $self->child_error(1 << 8, "$nr $k messages");
+                       $self->child_error(0, "$nr $k messages");
                }
        }
        $self->{1}->autoflush(1) if $self->{1};
@@ -1417,7 +1418,7 @@ sub refresh_watches {
                                add_maildir_watch($d, $cfg_f);
                        }
                } else { # TODO: imap/nntp/jmap
-                       $lei->child_error(1, "E: watch $url not supported, yet")
+                       $lei->child_error(0, "E: watch $url not supported, yet")
                }
        }
 
@@ -1452,7 +1453,7 @@ sub refresh_watches {
                                my $d = canonpath_harder($1);
                                cancel_maildir_watch($d, $cfg_f);
                        } else { # TODO: imap/nntp/jmap
-                               $lei->child_error(1, "E: watch $url TODO");
+                               $lei->child_error(0, "E: watch $url TODO");
                        }
                }
        }
index 21003894026099d55637684cf880ed291222cd11..b94f67a029ff3bbd967dea8487c67d59f93b2730 100644 (file)
@@ -32,7 +32,7 @@ sub solver_user_cb { # called by solver when done
        my $lei = $self->{lei};
        my $log_buf = delete $lei->{'log_buf'};
        $$log_buf =~ s/^/# /sgm;
-       ref($res) eq 'ARRAY' or return $lei->child_error(1 << 8, $$log_buf);
+       ref($res) eq 'ARRAY' or return $lei->child_error(0, $$log_buf);
        $lei->qerr($$log_buf);
        my ($git, $oid, $type, $size, $di) = @$res;
        my $gd = $git->{git_dir};
index 5b545998ba87d6905383d9641e3e32ec159820b4..ef3e4d0b299af603b806d84d11e6c36217ecc423 100644 (file)
@@ -21,7 +21,7 @@ sub input_eml_cb { # used by input_maildir_cb and input_net_cb
 
 sub input_fh { # overrides PublicInbox::LeiInput::input_fh
        my ($self, $ifmt, $fh, $input, @args) = @_;
-       $self->{lei}->child_error(1<<8, <<EOM);
+       $self->{lei}->child_error(0, <<EOM);
 $input ($ifmt) not yet supported, try `lei import'
 EOM
 }
index 1b28f36f68c57136c90823d0abf0004bab5fc2bc..cb71e97c3d2b649db7030f6ed95184c78a9c9445 100644 (file)
@@ -63,7 +63,7 @@ sub input_fh {
        my ($self, $ifmt, $fh, $name, @args) = @_;
        if ($ifmt eq 'eml') {
                my $buf = do { local $/; <$fh> } //
-                       return $self->{lei}->child_error(1 << 8, <<"");
+                       return $self->{lei}->child_error(0, <<"");
 error reading $name: $!
 
                # mutt pipes single RFC822 messages with a "From " line,
@@ -104,7 +104,7 @@ sub handle_http_input ($$@) {
        my $err = $@;
        waitpid($pid, 0);
        $? || $err and
-               $lei->child_error($? || 1, "@$cmd failed".$err ? " $err" : '');
+               $lei->child_error($?, "@$cmd failed".$err ? " $err" : '');
 }
 
 sub input_path_url {
index 9d95e899c2d4888c1b0166eec298d96a19a673b2..1e54c3bfa28ee95162e5691dfdd90a6ed22dd075 100644 (file)
@@ -18,7 +18,7 @@ sub lcat_folder ($$$) {
        my $err = $lms->arg2folder($lei, $folders);
        $lei->qerr(@{$err->{qerr}}) if $err && $err->{qerr};
        if ($err && $err->{fail}) {
-               $lei->child_error(1 << 8, "# unknown folder: $folder");
+               $lei->child_error(0, "# unknown folder: $folder");
        } else {
                for my $f (@$folders) {
                        my $fid = $lms->fid_for($f);
index 0ba5897c7ba8748ec1a1a358fd44516975c265b3..60286b065359430a1d6809ac073bea0482433428 100644 (file)
@@ -23,7 +23,7 @@ sub rediff_user_cb { # called by solver when done
        my $lei = $self->{lei};
        my $log_buf = delete $lei->{log_buf};
        $$log_buf =~ s/^/# /sgm;
-       ref($res) eq 'ARRAY' or return $lei->child_error(1 << 8, $$log_buf);
+       ref($res) eq 'ARRAY' or return $lei->child_error(0, $$log_buf);
        $lei->qerr($$log_buf);
        my ($git, $oid, $type, $size, $di) = @$res;
        my $oid_want = delete $self->{cur_oid_want};
index 85efd9f5ded69c69341332566d61d2a1f8f6466e..e1da64aa3847e766a1b983af97b6aa14ebba1660 100644 (file)
@@ -59,7 +59,7 @@ sub up1_redispatch {
                up1($l, $out);
                $l->qerr("# $out done");
        };
-       $l->child_error(1 << 8, $@) if $@;
+       $l->child_error(0, $@) if $@;
 }
 
 sub lei_up {