improved popminpoll handling
Brian K. Becknell
beck at clemson.edu
Mon Nov 3 13:56:30 EST 2003
I ran into the same problem when migrating to cyrus. I turned off
polling due to it's harshness. Please send me the patch!!!
> On my old UW POP server I added a patch to limit the polling frequency.
> Rather than just apply a fixed minimum time interval I made it give
> some flexibility. The patch allows users to do a few checks in quick
> succession but would fail if the longer term rate was too high. This
> is something which our POP users found to be a major improvement.
> On moving to cyrus, the rigid limit has caused many complaints.
> I have worked the same algorithm into cyrus's popminpoll handling.
> However, since I have not had time to really get to grips with the
> cyrus code, I have had to limit the possible impact my code would have.
> Perhaps someone with more knowledge of cyrus would like to improve
> matters for me.
> The algorithm needs to store an integer value between connections.
> Since the time of the last pop connection is stored in the inbox's
> cyrus.index file, that seemed the sensible place to store the new
> value. However, I did not want to extend the size of the data stored
> and create unforseen problems! My solution was to pack the new value
> in with "minor_version", using the top 16 of the 32 bits allocated in
> My patch involves making imap/mailbox.c pack and unpack the new variable
> with "minor_version" in mailbox_write_index_header() and
> mailbox_read_index_header(). Also, to add a function which does the
> checking to imap/pop3d.c, which is called from openinbox() where
> openinbox() normally compares the elapsed time with pipminpoll.
> If there is sufficient interest, perhaps the cyrus team might consider
> rolling it in.
> My patch is currently to 2.1.13, but I am about to apply it to 2.1.15
> too. I will be happy to to pass the patch to anyone who is interested
> (particularly anyone who can do a proper job of storing an extra
> integer in cyrus.index).
> Phil Chambers (postmaster at exeter.ac.uk)
> University of Exeter
More information about the Info-cyrus