From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 17EF51FF15E for ; Fri, 4 Oct 2024 15:47:03 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7B0CBFBDE; Fri, 4 Oct 2024 15:47:24 +0200 (CEST) From: Stoiko Ivanov To: pmg-devel@lists.proxmox.com Date: Fri, 4 Oct 2024 15:47:01 +0200 Message-Id: <20241004134702.14522-2-s.ivanov@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20241004134702.14522-1-s.ivanov@proxmox.com> References: <20241004134702.14522-1-s.ivanov@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.071 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pmg-devel] [PATCH pmg-api v2 1/2] sa-custom: move shadow config to the same directory X-BeenThere: pmg-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Mail Gateway development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pmg-devel-bounces@lists.proxmox.com Sender: "pmg-devel" keeping the shadow-file in /var/cache breaks their application if /var/cache is on another filesystem than /etc/mail/spamassassin. Perl's `rename` function [0], which is a wrapper for rename(2). `rename` does not work across filesystem boundaries (errors out with EXDEV). having `/var` on another filesystem is becoming less common, but should probably be supported. Instead of using some other means of file moving, just put the shadow file in the same directory as pmg-scores.cf. SpamAssassin only reads files ending in .(cf|pre)$ from its config-dirs, so having both files in the same directory should not be an issue. The use of '.new' for the shadow-file follows the naming for /etc/network/interfaces(.new). reported in our community-forum: https://forum.proxmox.com/threads/.154814/ tested in a container with a seperate volume for `/var/cache`. [0] https://perldoc.perl.org/functions/rename [1] https://github.com/apache/spamassassin/blob/trunk/README Suggested-by: Thomas Lamprecht Signed-off-by: Stoiko Ivanov --- src/PMG/SACustom.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/PMG/SACustom.pm b/src/PMG/SACustom.pm index f91ebf2..21e8ff4 100644 --- a/src/PMG/SACustom.pm +++ b/src/PMG/SACustom.pm @@ -6,15 +6,17 @@ use warnings; use PVE::INotify; use Digest::SHA; -my $shadow_path = "/var/cache/pmg-scores.cf"; my $conf_path = "/etc/mail/spamassassin/pmg-scores.cf"; +my $shadow_path = "$conf_path.new"; sub get_shadow_path { return $shadow_path; } sub apply_changes { - rename($shadow_path, $conf_path) if -f $shadow_path; + if (-f $shadow_path) { + rename($shadow_path, $conf_path) || die 'failed to apply custom scores - $!\n'; + } } sub calc_digest { -- 2.39.5 _______________________________________________ pmg-devel mailing list pmg-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pmg-devel