Adjusted smtp-auth to handle error keywords that might be returned from the sasl mech functions.
Added new configuration parameter *smtp-max-connections-per-client*. Default is 10.
See bug21958 for details. Also added 'mtime' slot to the 'queue' struct. It is updated whenever update-queue-file is called. The timestamp is now printed when listing the queue.
Each process/thread created by is marked as not keeping lisp alive, so when we kill maild via signals it will successfully shut down. That's the theory, anyway. Hard to test in a debugging environment.
Fork first, start web server second. Log an errors if the web server cannot start up, too.
Testing of the SMP shows that it works, so we tentatively put it into service during an email blast and it's holding up really well. No problems noticed and it solved one of the biggest problems of the blasts on freon (the machine that delivers all the email from meatlocker): non-blast emails get through without error.
Adds "with ESMTPA", "with ESMTPS", or "with ESMTPSA" if relevant. This header is used by some spam checkers (such as SpamAssassin) to make decisions.
Not work creating a new release for this.
I believe the file descriptor leak has been located so this commit turns off some debugging that was added in commit "08fdbd5 Add extra log output to track down leaked socket fd problem".
Moved the call to update-queue-file into the protection of the unwind-protect so that the outgoing socket will be properly closed in case of an unexpected error.
It's ok if the tempqf* file already exists. This could happen if maild crashed in the middle of a call to update-queue-file.
file descriptor number is logged when an SMTP connection is accepted and when it is about to be closed. Also moved the error handler in do-smtp higher up so that it is still in effect when the unwind-protect is operating (so that errors that occur in the unwind-protect cleanup forms don't go unseed). Also log accept-connection errors to see if they could possibly be related to the leak.
Just print something small and informative to the log file instead.
`update' rule is obsolete (uses CVS). Add mkdir of $(ROOT)/etc to install-system. Can't hurt.
Two main changes: - implement *dns-blacklist-sender-exceptions* - improved *dns-blacklists* Mirrors *dns-blacklist-recipient-exceptions*, except for the sender. For users of, for example, dnsbl pbl.spamhaus.org, there needs to be a way to whitelist senders. *dns-blacklists* can now be a list of conses of the form ("hostname" . "expected-result") where expected-result is the ipaddr of the expected result for blacklisting. Some blacklists return different codes for different levels of blacklisting, and some even return codes for whitelisted IPs. For example, hostkarma.junkemailfilter.com returns 127.0.0.1 to mean the host is whitelisted (trusted nonspam). The hostkarma.junkemailfilter entry would be: ("hostkarma.junkemailfilter.com" . ;; http://wiki.junkemailfilter.com/index.php/Spam_DNS_Lists "127.0.0.2") Also added a suggest value for *dns-blacklists*, the one I currently use, which in testing has proven very good at reducing spam without giving me false positives. Remove Makefile.local.relay--it doesn't belong in this repo.
Added these user-visible changes to aid in the testing: -bT :: "test" mode which turns on debugging and doesn't require root permissions. -p port :: allow setting port on command line -r directory :: allow setting a root directory for all directory variables (*ssl-certificate-file*, *ssl-key-file*, *aliases-file*, *stats-file*, *queuedir* and *pid-file*) Test files are in test/. New make rule "test". Currently requires /fi/cl/9.0.beta/bin/.
modified: deliver.cl *file-delivery-locks*: defvar is sufficient to initialize this get-file-delivery-lock: assume that defvar worked use with-delayed-interrupts instead of without-interrupts put-file-delivery-lock: use with-delayed-interrupts instead of without-interrupts modified: greyadmin/greyadmin.cl *greylist-lock*: defvar is sufficient to initialize this ensure-greylist-db: assume that defvar worked modified: greylist.cl *greylist-lock*: defvar is sufficient to initialize this ensure-greylist-db: assume that defvar worked modified: queue-process.cl with-queue-process-thread: use with-delayed-interrupts instead of without-interrupts queue-process-all: use with-delayed-interrupts instead of without-interrupts modified: smtp-server.cl inc-smtp-stat: use incf-atomic get-smtp-stat: remove superfluous without-interrupts inc-checker-stat: use with-delayed-interrupts instead of without-interrupts *smtp-stats-lock*: defvar is sufficient to initialize this update-smtp-stats: assume that defvar worked
A format arg was missing in a call to maild-log for syntax errors in the SMTP MAIL command. Fixed.
Reworked the "from" portion of the Received: header so that it's in a format like Sendmail's. This should allow SpamAssassin to do a better job at detecting the boundary between internal mail servers and the outside world.
REPOBASE shouldn't have $(ARCH) in it
The problem I'm trying to fix is a delivery loop of a file with funny characters in it.