]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Retry dovecot submission on failure
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Tue, 28 Jun 2022 21:06:32 +0000 (23:06 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Sun, 9 Apr 2023 15:16:24 +0000 (17:16 +0200)
modules/private/mail/postfix.nix

index 3febe62ef623b9a0a33f84b0a12dcd2e89077bb1..21f12ffabe99d6a31ee1643f4d7b3e9ba7e0a991 100644 (file)
             # here.
             rspamc_dovecot = pkgs.writeScriptBin "rspamc_dovecot" ''
               #! ${pkgs.stdenv.shell}
+              set -o pipefail
               sender="$1"
               original_recipient="$2"
               user="$3"
 
               ${pkgs.coreutils}/bin/cat - | \
-                (${pkgs.rspamd}/bin/rspamc -h ${config.myServices.mail.rspamd.sockets.worker-controller} -c bayes -d "$user" --mime || true) | \
+                ${pkgs.rspamd}/bin/rspamc -h ${config.myServices.mail.rspamd.sockets.worker-controller} -c bayes -d "$user" --mime | \
                 ${pkgs.dovecot}/libexec/dovecot/dovecot-lda -f "$sender" -a "$original_recipient" -d "$user"
+              if echo ''${PIPESTATUS[@]} | ${pkgs.gnugrep}/bin/grep -qE '^[0 ]+$'; then
+                exit 0
+              else
+                # src/global/sys_exits.h to retry
+                exit 75
+              fi
               '';
           in [
             "flags=ODRhu" "user=vhost:vhost"