From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.2 required=3.0 tests=ALL_TRUSTED,AWL,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 526471FA40 for ; Fri, 27 Oct 2023 09:40:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1698399642; bh=zXdAtUjUFHCy/Jw5apM8YKsPoqS60spYtQViN7HZlDM=; h=From:To:Subject:Date:In-Reply-To:References:From; b=tGzaSkXJF4Aw13q0M5ZGCw1ENtNmW94NxqcKCmi86iHucFKRHajlPsJG+EQ9lo/KE LYCUWE7ExNEZhZ5IOmUkAEdhc9fIBKMfV/zAmupGfyHDe8+LTs87UENaAvUftGhgBw ilmfNydMtRBnbk+9GZgwTMQiq9Vm0Ih4KKw++26U= From: Eric Wong To: spew@80x24.org Subject: [PATCH 16/18] spamcheck/spamc: use run_qx Date: Fri, 27 Oct 2023 09:40:37 +0000 Message-ID: <20231027094039.3788289-16-e@80x24.org> In-Reply-To: <20231027094039.3788289-1-e@80x24.org> References: <20231027094039.3788289-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: --- lib/PublicInbox/Spamcheck/Spamc.pm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/PublicInbox/Spamcheck/Spamc.pm b/lib/PublicInbox/Spamcheck/Spamc.pm index cba33a66..798de218 100644 --- a/lib/PublicInbox/Spamcheck/Spamc.pm +++ b/lib/PublicInbox/Spamcheck/Spamc.pm @@ -4,7 +4,7 @@ # Default spam filter class for wrapping spamc(1) package PublicInbox::Spamcheck::Spamc; use v5.12; -use PublicInbox::Spawn qw(popen_rd run_wait); +use PublicInbox::Spawn qw(run_qx run_wait); use IO::Handle; use Fcntl qw(SEEK_SET); @@ -20,14 +20,9 @@ sub new { sub spamcheck { my ($self, $msg, $out) = @_; + $out = \(my $buf = '') unless ref($out); my $rdr = { 0 => _msg_to_fh($self, $msg) }; - my $fh = popen_rd($self->{checkcmd}, undef, $rdr); - unless (ref $out) { - my $buf = ''; - $out = \$buf; - } - $$out = do { local $/; <$fh> }; - close $fh; # PublicInbox::ProcessIO::CLOSE + $$out = run_qx($self->{checkcmd}, undef, $rdr); ($? || $$out eq '') ? 0 : 1; }