e145beb394
Dave identified a case where our new dropped connection handling did not work out correctly: we use the retry_left variable to signify success (0=success if no exception occured). However, we were decrementing the variable AFTER all the exception checks, so if there was one due to a dropped connection, it could well be that we 1) did not raise an exception (because we want to retry), and 2) then DECREMENTED retry_left, which indicated "all is well, no need to retry". The code then continued to check() the append, which failed with the above message (because we obtained a new connection which had not even selected the current folder and we were still in mode AUTH). The fix is of course, to fix our logic: Decrement retry_left first, THEN decide whether to raise() (retry_left==0) or retry (retry_left>0) which would then correctly attempt another loop. I am sorry for this newbie type of logic error. The retry count loop was too hastily slipped in, it seems. Reported-by: Dave Abrahams <dave@boostpro.com> Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> |
||
---|---|---|
.. | ||
folder | ||
repository | ||
ui | ||
__init__.py | ||
accounts.py | ||
CustomConfig.py | ||
error.py | ||
imaplib2.py | ||
imaplibutil.py | ||
imapserver.py | ||
imaputil.py | ||
init.py | ||
localeval.py | ||
mbnames.py | ||
syncmaster.py | ||
threadutil.py |