]> git.sommitrealweird.co.uk Git - onak.git/blobdiff - onak-mail.pl.in
Switch debian build system to dh
[onak.git] / onak-mail.pl.in
index 263b7270cf8801c19ef1878267f2fe168bb17887..96fce71008e10bf178d5e5d7ac67f34e80414b6e 100644 (file)
@@ -2,8 +2,7 @@
 #
 # onak-mail.pl - Mail processing interface for onak, an OpenPGP Keyserver.
 #
 #
 # 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.
 #
 
 # Released under the GPL.
 #
 
@@ -88,7 +87,7 @@ sub processmail($$$$$) {
        # HELP, ADD, INCREMENTAL, VERBOSE INDEX <keyid>, INDEX <keyid>,
        # GET <keyid>, LAST <days>
        
        # 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;
                my $site;
                my $count;
                my $i;
@@ -110,6 +109,21 @@ sub processmail($$$$$) {
                        $time[2], $time[1], $time[0];
                print LOG "] onak-mail[$$]: Syncing with $count sites.\n";
                close LOG;
                        $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'}");
        
                if ((! defined($newupdate[0])) || $newupdate[0] eq '') {
                        open (LOG, ">>$config{'logfile'}");
@@ -198,11 +212,12 @@ my $tmpfile = sprintf "%s/%04d%02d%02d-%02d%02d%02d-%d.onak",
                        $time[1],
                        $time[0],
                        $$;
                        $time[1],
                        $time[0],
                        $$;
-open(MAILFILE, '>'.$tmpfile);
+open(MAILFILE, '>'.$tmpfile.'.tmp');
 while (<>) {
        print MAILFILE $_;
 }
 close(MAILFILE);
 while (<>) {
        print MAILFILE $_;
 }
 close(MAILFILE);
+rename $tmpfile.".tmp", $tmpfile;
 
 #
 # Lock here to ensure that only one copy of us is processing the incoming
 
 #
 # Lock here to ensure that only one copy of us is processing the incoming
@@ -242,7 +257,7 @@ while ($file = readdir(MAILDIR)) {
                        push @body, $_;
                }
        }
                        push @body, $_;
                }
        }
-       if (! defined($replyto)) {
+       if ($replyto eq '') {
                $replyto = $from;
        }
        close(FILE);
                $replyto = $from;
        }
        close(FILE);