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
$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;
"(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;
}
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);
}