#
# onak-mail.pl - Mail processing interface for onak, an OpenPGP Keyserver.
#
-# Written by Jonathan McDowell <noodles@earth.li>
-# Copyright 2002-2005 Project Purple
+# Copyright 2002-2005 Jonathan McDowell <noodles@earth.li>
# Released under the GPL.
#
$config{'mta'} = $1;
} elsif (/^pks_bin_dir (.*)/) {
$config{'pks_bin_dir'} = $1;
- } elsif (/^db_dir (.*)/) {
- $config{'db_dir'} = $1;
} elsif (/^mail_dir (.*)/) {
$config{'mail_dir'} = $1;
} elsif (/^syncsite (.*)/) {
# HELP, ADD, INCREMENTAL, VERBOSE INDEX <keyid>, INDEX <keyid>,
# GET <keyid>, LAST <days>
- if ($subject =~ /^INCREMENTAL$/i) {
+ if ($subject =~ /^(INCREMENTAL|ADD)$/i) {
my $site;
my $count;
my $i;
$time[2], $time[1], $time[0];
print LOG "] onak-mail[$$]: Syncing with $count sites.\n";
close LOG;
+
+ if ($subject =~ /ADD/i) {
+ open(MAIL, "|$config{mta}");
+ print MAIL "From: $config{adminemail}\n";
+ print MAIL "To: $replyto\n";
+ print MAIL "Subject: Reply to ADD\n";
+ print MAIL "Precedence: list\n";
+ print MAIL "MIME-Version: 1.0\n";
+ print MAIL "Content-Type: text/plain\n";
+ print MAIL "\n";
+ print MAIL "Thank you for your recent key submission.",
+ " It has been processed and synced\n",
+ "with ", $count, " other keyservers.\n";
+ close MAIL;
+ }
if ((! defined($newupdate[0])) || $newupdate[0] eq '') {
open (LOG, ">>$config{'logfile'}");
$time[1],
$time[0],
$$;
-open(MAILFILE, '>'.$tmpfile);
+open(MAILFILE, '>'.$tmpfile.'.tmp');
while (<>) {
print MAILFILE $_;
}
close(MAILFILE);
+rename $tmpfile.".tmp", $tmpfile;
#
# Lock here to ensure that only one copy of us is processing the incoming
# mail queue at any point in time.
#
-sysopen(LOCKFILE, $config{'db_dir'}.'/onak-mail.lck',
+sysopen(LOCKFILE, $config{'mail_dir'}.'/onak-mail.lck',
O_WRONLY|O_CREAT|O_EXCL) or exit;
print LOCKFILE "$$";
close(LOCKFILE);
push @body, $_;
}
}
- if (! defined($replyto)) {
+ if ($replyto eq '') {
$replyto = $from;
}
close(FILE);
processmail($subject, $from, $replyto, \%seenby, \@body);
}
closedir(MAILDIR);
-unlink $config{'db_dir'}.'/onak-mail.lck';
+unlink $config{'mail_dir'}.'/onak-mail.lck';