The patch seems interesting.  I do have a few questions:

(1) Have you tried enabling cache files? That eliminates processing the spool if no new mail has arrived since the prior mail check, which cuts way down on I/O.

(2) A logical extension for cache files is to not throw them out just because new mail has arrived, but instead process only the new mail and append to the cache. That should be a big win with users who have large spools. I haven't had the time to make this change, but if someone else wanted to, that would be terrific.

(3) Qpopper does have some rudimentary hooks for telling clients the minimum mail check interval, but it doesn't enforce it. This could be extended to enforce the limit, perhaps in conjunction with the keep-temp-drop option (which keeps the temp drop around so that the user's last mail check can be easily determined at any time).

(4) Keep in mind that returning an [AUTH] error should only be done if the user's credentials are bad, since it tells the clients to throw out the saved password and ask the user to retype it.

(5) I'm puzzled by the desire to return a 'no new messages' error. Many clients authenticate and then issue LIST and UIDL. Is the intent to cache these responses and return them without actually checking? Or is the intent to return empty values for each, thus telling the client that all mail on the server has been deleted, only to have it reappear later? I'm probably missing something very obvious here, so please forgive me.

(6) If the happymail patch were to be intended to be incorporated into the standard distribution, I'd like to see it make much less use of #ifdef, and use boolean or other option checks instead. I think it makes the code much more maintainable, especially where lots of options can get independently selected. It would also need to run on all OS flavors, of course.
--
Randall Gellens
Opinions are personal;    facts are suspect;    I speak for myself only
-------------- Randomly-selected tag: ---------------
Finagle's Second Law:
   No matter what the anticipated result, there will always be
   someone eager to (a) misinterpret it, (b) fake it, or (c)
   believe it happened according to his own pet theory.

Reply via email to