]> git.proxmox.com Git - pmg-api.git/commitdiff
PMG::Cluster::sync_quarantine_db: skip files generated before cluster was created
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 30 Jan 2018 06:45:37 +0000 (07:45 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 30 Jan 2018 06:45:37 +0000 (07:45 +0100)
PMG/Cluster.pm

index 5d7d29c6e78538c3a1289730654bbe8d00691fad..856c6f81dcc8ca9081b63d249727030f920afdaf 100644 (file)
@@ -291,10 +291,14 @@ my $rsync_command = sub {
 };
 
 sub sync_quarantine_files {
-    my ($host_ip, $host_name, $flistname) = @_;
+    my ($host_ip, $host_name, $flistname, $rcid) = @_;
 
     my $spooldir = $PMG::MailQueue::spooldir;
 
+    mkdir "$spooldir/cluster/";
+    my $syncdir = "$spooldir/cluster/$rcid";
+    mkdir $syncdir;
+
     my $cmd = $rsync_command->(
        $host_name, '--timeout', '10', "${host_ip}:$spooldir", $spooldir,
        '--files-from', $flistname);
@@ -542,7 +546,10 @@ sub sync_quarantine_db {
            my $callback = sub {
                my $ref = shift;
                $maxid = $ref->{rid};
-               print $flistfh "$ref->{file}\n";
+               my $filename = $ref->{file};
+                # skip files generated before cluster was created
+               return if $filename !~ m!^cluster/!;
+               print $flistfh "$filename\n";
            };
 
            my $attrs = [qw(cid rid time qtype bytes spamlevel info sender header file)];
@@ -551,7 +558,7 @@ sub sync_quarantine_db {
            close($flistfh);
 
            my $starttime = [ gettimeofday() ];
-           sync_quarantine_files($ni->{ip}, $ni->{name}, $flistname);
+           sync_quarantine_files($ni->{ip}, $ni->{name}, $flistname, $rcid);
            $$rsynctime_ref += tv_interval($starttime);
 
            if ($maxid) {