浏览代码

[Dovecot] Disable imapsync job, when auth details are wrong. Fixes #4276 (#4540)

Signed-off-by: Kristian Feldsam <feldsam@gmail.com>
Kristian Feldsam 3 年之前
父节点
当前提交
d4e829465b
共有 2 个文件被更改,包括 11 次插入5 次删除
  1. 10 4
      data/Dockerfiles/dovecot/imapsync_runner.pl
  2. 1 1
      docker-compose.yml

+ 10 - 4
data/Dockerfiles/dovecot/imapsync_runner.pl

@@ -51,8 +51,8 @@ sub sig_handler {
   die "sig_handler received signal, preparing to exit...\n";
   die "sig_handler received signal, preparing to exit...\n";
 };
 };
 
 
-open my $file, '<', "/etc/sogo/sieve.creds"; 
-my $creds = <$file>; 
+open my $file, '<', "/etc/sogo/sieve.creds";
+my $creds = <$file>;
 close $file;
 close $file;
 my ($master_user, $master_pass) = split /:/, $creds;
 my ($master_user, $master_pass) = split /:/, $creds;
 my $sth = $dbh->prepare("SELECT id,
 my $sth = $dbh->prepare("SELECT id,
@@ -166,11 +166,17 @@ while ($row = $sth->fetchrow_arrayref()) {
       $success = 1;
       $success = 1;
     }
     }
 
 
-    $update = $dbh->prepare("UPDATE imapsync SET returned_text = ?, success = ?, exit_status = ? WHERE id = ?");
+    $keep_job_active = 1;
+    if (defined $exit_status && $exit_status eq "EXIT_AUTHENTICATION_FAILURE_USER1") {
+      $keep_job_active = 0;
+    }
+
+    $update = $dbh->prepare("UPDATE imapsync SET returned_text = ?, success = ?, exit_status = ?, active = ? WHERE id = ?");
     $update->bind_param( 1, ${stdout} );
     $update->bind_param( 1, ${stdout} );
     $update->bind_param( 2, ${success} );
     $update->bind_param( 2, ${success} );
     $update->bind_param( 3, ${exit_status} );
     $update->bind_param( 3, ${exit_status} );
-    $update->bind_param( 4, ${id} );
+    $update->bind_param( 4, ${keep_job_active} );
+    $update->bind_param( 5, ${id} );
     $update->execute();
     $update->execute();
   } catch {
   } catch {
     $update = $dbh->prepare("UPDATE imapsync SET returned_text = 'Could not start or finish imapsync', success = 0 WHERE id = ?");
     $update = $dbh->prepare("UPDATE imapsync SET returned_text = 'Could not start or finish imapsync', success = 0 WHERE id = ?");

+ 1 - 1
docker-compose.yml

@@ -213,7 +213,7 @@ services:
             - sogo
             - sogo
 
 
     dovecot-mailcow:
     dovecot-mailcow:
-      image: mailcow/dovecot:1.161
+      image: mailcow/dovecot:1.162
       depends_on:
       depends_on:
         - mysql-mailcow
         - mysql-mailcow
       dns:
       dns: