diff options
-rw-r--r-- | NEWS | 13 | ||||
-rw-r--r-- | fetchmail.c | 5 | ||||
-rw-r--r-- | sink.c | 7 |
3 files changed, 18 insertions, 7 deletions
@@ -1,10 +1,8 @@ Things to do: -Scrollbars on fetchmailconf help windows (Debian bug #51770). +Scrollbars on fetchmailconf help windows (Debian normal bug #51770). -Log bounced messages via syslog (Debian bug #50184). - -Notify user by mail when pop server nonexistent (Debian bug #47143). +Notify user by mail when pop server nonexistent (Debian wishlist #47143). In the SSL support, we need to add server certificate validation (In other words, does the certificate match the system we are trying to @@ -17,14 +15,21 @@ worried with copies of it, GPG/PGP offers more security than MD5. I don't know exactly, but I think you can sign it both ways so that your package will have two security verifications instead of one... +The Debian bug-tracking page for fetchmail is: + + http://cgi.debian.org/cgi-bin/pkgreport.cgi?archive=no&pkg=fetchmail + Release Notes: (The `lines' figures total .c, .h, .l, and .y files under version control.) * Close down sockets using shutdown(2) and discarding read data until we get a TCP FIN. With any luck this will squash our socket leak. +* Open the lockfile with O_SYNC, so we know the file has been written + before close (sigh...NFS might still betray us...). * Added Martijn Lievaart's sendmail hacks for multidrop to the contrib directory. +* Log bounced messages via syslog (Debian bug #50184). * Debian buglist cleanup. fetchmail-5.2.5 (Mon Jan 31 02:02:48 EST 2000), 18445 lines: diff --git a/fetchmail.c b/fetchmail.c index c6b2e72f..27054b1d 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -574,7 +574,8 @@ int main(int argc, char **argv) signal(SIGQUIT, terminate_run); /* here's the exclusion lock */ - if ((st = open(lockfile, O_WRONLY | O_CREAT | O_EXCL, 0666)) != -1) { + if ((st = open(lockfile, O_WRONLY|O_CREAT|O_EXCL|O_SYNC, 0666)) != -1) + { sprintf(tmpbuf,"%d", getpid()); write(st, tmpbuf, strlen(tmpbuf)); if (run.poll_interval) @@ -582,7 +583,7 @@ int main(int argc, char **argv) sprintf(tmpbuf," %d", run.poll_interval); write(st, tmpbuf, strlen(tmpbuf)); } - close(st); /* should be safe, previous write was atomic */ + close(st); /* should be safe, fd was opened with O_SYNC */ lock_acquired = TRUE; } @@ -282,14 +282,19 @@ static int send_bouncemail(struct query *ctl, struct msgblk *msg, || SMTP_data(sock) != SM_OK) return(FALSE); + /* our first duty is to keep the sacred foo counters turning... */ sprintf(boundary, - "om-mani-padme-hum-%d-%d-%ld", + "foo-mani-padme-hum-%d-%d-%ld", (int)getpid(), (int)getppid(), time((time_t *)NULL)); ts = rfc822timestamp(); if (outlevel >= O_VERBOSE) report(stdout, "SMTP: (bounce-message body)\n"); + else + /* this will usually go to sylog... */ + report(stderr, "mail from %s bounced to %s\n", + daemon_name, bounce_to); /* bouncemail headers */ SockPrintf(sock, "Return-Path: <>\r\n"); |