Back to Eric's Home Page Up to Site Map $Date: 2004/01/13 03:21:41 $

Fetchmail Bugs and To-Do Items

I try to respond to urgent bug reports in a timely way. But fetchmail is now pretty mature and I have many other projects, so I don't personally chase obscure or marginal problems. Help with any of these will be cheerfully accepted.

Feature request from "Ralf G. R. Bergs" "When fetchmail downloads mail and Exim+SpamAssassin detecs an incoming message as spam, fetchmail tries to bounce it. Unfortunately it uses an incorrect hostname as part of the sender address (I've an internal LAN with private hostnames, plus an official IP address and hostname, and fetchmail picks the internal name of my host.) So I'd like to have a config statement that allows me to explicitly set a senderaddress for bounce messages."

POP3 can't presently distinguish a wedged or down server from an authentication failure. Possible fix: after issuing a PASS command. wait 300 (xx) seconds for a "-ERR" or a "+OK" . If nothing comes back, retry at the next poll event and generate no errors. If we get an -ERR then log an authentication failure.

It has been reported that multidrop name matching fails when the name to be matched contains a Latin-1 umlaut. Dollars to doughnuts this is some kind of character sign-extension problem. Trouble is, it's very likely in the BIND libraries. Someone should go in with a debugger and check this.

In the SSL support, add authentication of Certifying Authority (Is this a Certifying Authority we recognize?).

Debian wishlist item 181157: ssl key learning for self-signed certificates.

Laszlo Vecsey writes: "I believe qmail uses a technique of writing temporary files to nfs, and then moving them into place to ensure that they're written. Actually a hardlink is made to the temporary file and the destination name in a new directory, then the first one is unlinked.. maybe a combination of this will help with the fetchmail lock file."

Move everything to using service strings rather that port numbers, so we can get rid of ENABLE_INET6 everywhere but in SockOpen (this will get rid of the kluge in rcfile_y.y).

John Summerfield suggests that specifying a localname containing @ ought to be treated as an smtpname option, with the domain part removed for other purposes such as local-address matching.

Maybe refuse multidrop configuration unless "envelope" is _explicitly_ configured (and tell the user he needs to configure the envelope option) and change the envelope default to nil. This would prevent a significant class of shoot-self-in-foot problems.

Given the above change, perhaps treat a delivery as "temporarily failed" (leaving the message on the server, not putting it into .fetchids) when the header listed in the "envelope" option is not found. (This is so you don't lose mail if you configure the wrong envelope header.)

Matthias Andree writes:

NOTE that the current code need optimization, if I have unseen articles 3 and 47, fetchmail will happily request LIST for articles 3...47 rather than just 3 and 47. In cases where the message numbers are far apart, this involves considerable overhead - which could be alleviated by pipelining the list commands, which needs either asynchronous reading while sending the commands, or knowing the send buffer, to avoid deadlocks. Unfortunately, I don't have the time to delve deeper into the code and look around.

Note that such a pipelining function would be of universal use, so it should not be in pop3.c or something. I'd think the best approach is to call a "sender" function with the command and a callback, and the sender will call the receiver when the send buffer is full and call the callback function for each reply received.

See the ESMTP PIPELINING RFC for details on the deadlock avoidance requirements.

The Debian bug-tracking page for fetchmail lists other bug reports.


Back to Eric's Home Page Up to Site Map $Date: 2004/01/13 03:21:41 $

Eric S. Raymond <esr@thyrsus.com>