]> git.proxmox.com Git - pmg-api.git/blobdiff - PMG/MailQueue.pm
Quarantine: reuse raw parameter for non htmlmail formatter
[pmg-api.git] / PMG / MailQueue.pm
index 9ae6721e26ed2250bee40c13e37d90e4c5b61c8e..37d30d7efdb7f35cdaed3991a4d4179998a57c2f 100644 (file)
@@ -19,9 +19,21 @@ our $spooldir = "/var/spool/pmg";
 
 my $fileseq = rand 1000;
 
-sub create_sppoldirs {
+sub create_spooldirs {
+    my ($lcid, $cleanup) = @_;
+
+    # if requested, remove any stale date
+    File::Path::remove_tree(
+       "$spooldir/cluster", "$spooldir/active",
+       "$spooldir/virus", "$spooldir/spam") if $cleanup;
+
     File::Path::make_path(
        "$spooldir/active", "$spooldir/spam", "$spooldir/virus");
+
+    if ($lcid) {
+       mkpath "$spooldir/cluster/$lcid/virus";
+       mkpath "$spooldir/cluster/$lcid/spam";
+    }
 }
 
 # called on service startup to remove any stale files
@@ -156,10 +168,10 @@ sub quarantinedb_insert {
        $insert_cmds .= $dbh->quote ($sender) . ',';
        $insert_cmds .= $dbh->quote ($file) . ');';
 
-       my $tid = int (rand (0x0fffffff));
-
        my $now = time();
 
+       my $tid = int(rand(0x0fffffff));
+
        foreach my $r (@$targets) {
            my $pmail = get_primary_mail ($ldap, $r);
            my $receiver;
@@ -175,7 +187,7 @@ sub quarantinedb_insert {
                "(CMailStore_CID, CMailStore_RID, PMail, Receiver, TicketID, Status, MTime) " .
                "VALUES ($lcid, currval ('cmailstore_id_seq'), $pmail, $receiver, $tid, 'N', $now); ";
 
-           # (Mailstore_ID, TicketID) must be unique
+           # Note: Tuple (CID, RID, TicketID) must be unique
            $tid = ($tid + 1) & 0x0fffffff;
        }
 
@@ -256,12 +268,9 @@ sub quarantine_mail {
 
     eval {
        if ($lcid) {
-           if ($qtype eq 'V') {
-               mkpath "$spooldir/cluster/$lcid/virus";
-           } else {
-               mkpath "$spooldir/cluster/$lcid/spam";
-           }
-           ($fh, $uid, $path) = new_fileid ($spooldir, "cluster/$lcid/$subpath");
+           my $subdir = "cluster/$lcid/$subpath";
+           mkpath $subdir;
+           ($fh, $uid, $path) = new_fileid ($spooldir, $subdir);
        } else {
            ($fh, $uid, $path) = new_fileid ($spooldir, $subpath);
        }