jgoerzen [Tue, 6 May 2003 19:26:12 +0000 (20:26 +0100)]
/offlineimap/head: changeset 474
- offlineimap (3.99.17) unstable; urgency=low
- Fixed two potential obscure race conditions in folder/Maildir.py. +
Condition 1 involved the gettimeseq() function. This function
accesses per-module variables but does not have a lock. It may have
been possible for this to have been called in such a way that
timeseq was not properly updated. + Condition 2 involved the call to
gettimeseq(). Since the timeseq is based on the system clock, we now
use the time as reported inside timeseq() rather than outside. This
way, we can be assured that the same value is in use both places.
- Added debug code to savemessage in folder/Maildir.py to try to track
down a mysterious 0-length file bug. -- John Goerzen
<jgoerzen@complete.org> Tue, 6 May 2003 09:21:38 -0500
jgoerzen [Tue, 6 May 2003 18:41:13 +0000 (19:41 +0100)]
/offlineimap/head: changeset 471
- Added some significant debug code to folder/IMAP.py when saving a
new message with APPEND. This should make it easier to track down
bugs both in OfflineIMAP and in mail servers that implement this
poorly.
- Fixed adding of X-OfflineIMAP header when the message starts out
with no headers. (This should not generally occur.) This should help
with some "invalid literal for long()" problems.
When sep was /, the new Maildir support code would recursively try to
scan ., resulting in huge paths and an eventual crash. Fixed with a
one-line patch to Maildir.py. Closes: [complete.org #60] Sergei, The
below diff is going into 3.99.16. You can apply it to 3.99.15 and it
should work for you now. Please let me know. (Ignore any patch errors
for debian/changelog). Thanks for the report.
Raise an exception when the status area is locked. This will cause UIs
to go through their normal exception handling code. In particular, for
the Curses.Blinkenlights interface, the Curses module will be stopped
and the error message will be printed on the console. Previously, this
error message would not have been visible. Closes: #185709.
- Slight renaming in offlineimap.conf.minimal to clarify things.
- Documentation updated with information about new features. Closes:
#189771. + Described IMAP-IMAP syncing + Updated minimal example
with new offlineimap.conf.minimal + Updated UID information. Added
link to recent mailing list discussion. + Described KMail syncing,
which now works. + Added link to mailing list archives.
- Now checks that SELECT succeeded when entering a folder.
- Verifies that folders listed on folderincludes actually exist by
trying to enter them. Thus, if they do not exist, they can be
created on the first run.
Fixed line-ending code to deal with files with mixed \n and \r\n
codes. This is a rare case, but now is more onerous because we now
have to find headers.
jgoerzen [Tue, 7 Jan 2003 02:21:46 +0000 (03:21 +0100)]
/offlineimap/head: changeset 323
Due to possibly having one account sleep while another is reading a
password, and other tricky situations, support for nice updating and
cancelling of a sleep in TTY.TTYUI has been removed. However, this is
not going to be a huge problem because the new Curses Blinkenlights
interface has this support, and does it a lot better than TTY.TTYUI
ever could have.
jgoerzen [Tue, 7 Jan 2003 00:00:43 +0000 (01:00 +0100)]
/offlineimap/head: changeset 320
Reworked the canvas. Before, problem was the label and buttons to the
right of the lights would make the window too wide. When the button
got added, the window would get even wider. That was because the
canvas would not shrink. My workaround is to use a separate canvas for
each light. Seems to be OK here....
jgoerzen [Mon, 6 Jan 2003 22:15:15 +0000 (23:15 +0100)]
/offlineimap/head: changeset 315
Fixed up the VerboseUI for new account system. All that really needed
updating with the "Sync immediately" button, to cope with syncing
different accounts at different times. It's better now.
jgoerzen [Mon, 6 Jan 2003 21:58:29 +0000 (22:58 +0100)]
/offlineimap/head: changeset 314
More locking updates. Introduced a new MultiLock to threadutil. This
lock will let a single thread acquire the same lock more than once,
keeping track of how many times this happens, and will release the
actual lock only when the lock's lock count gets back to zero. By
using MultiLock, various functions in Curses.py and Blinkenlights.py
no longer need to pass around to other functions a parameter
indicating whether or not a lock should be obtained. This was a large
cause of complexity and errors, which is now eliminated. Everything
seems to be working properly wrt locking at this point. The
Curses.Blinkenlights interface has achieved basic working
functionality.
jgoerzen [Mon, 6 Jan 2003 20:40:23 +0000 (21:40 +0100)]
/offlineimap/head: changeset 312
Updated the mbnames recorder to bring it back up-to-date with the new
account-centric system. It will now gather reports from account sync
threads, and when it has all that it's supposed to, it'll write out
the file.
jgoerzen [Mon, 6 Jan 2003 11:07:16 +0000 (12:07 +0100)]
/offlineimap/head: changeset 310
Added some temporary debug code to help weed out a few race conditions
with the curses Blinkenlights interface. Think I've finally got it.
I'm leaving the debugging code in for now, though, to help in case
there are future problems.
jgoerzen [Sun, 5 Jan 2003 23:07:58 +0000 (00:07 +0100)]
/offlineimap/head: changeset 308
More progress at debugging. The curses blinkenlights is now working
well, though it still has an occasional tendency to corrupt the light
display with comments from the log. I suspect a locking problem --
need to be more strict with iolock I suspect. Updated various modules
to register the threads' account names, etc.
jgoerzen [Sat, 4 Jan 2003 04:57:46 +0000 (05:57 +0100)]
/offlineimap/head: changeset 297
Changed to a more account-centric behavior. The refresh time is now a
per-account variable. Implemented new account classes. User interfaces
must now be updated to take advantage of this.