Age | Commit message (Collapse) | Author |
|
There's a workaround for "slow" APPENDS to an inbox, and it is that we
have a flag to allow returning early when JUST the mdoc (the
meta-document) has been written. However, this was givin a problem when
doing a FETCH right after an APPEND (with notify_just_mdoc=True) has
been done.
This commit fixes it by making the FETCH command first check if there's
an ongoing pending write, and queueing itself right after the write
queue has been completed.
This fixes the testFullAppend regression.
Releases: 0.4.0
|
|
This fix stores as multi-line headers that are repeated, and that were
being discarded when storing them in a regular dict.
It had been removed during the last refactor.
I also store headers now as a case-insensitive dict, which solves other
problems with the implementation of the twisted imap.
Releases: 0.4.0
|
|
while updating the tests, I found that IMAPMessageCollection was not
actually being used: all the work is done in IMAPMailbox, using directly
the MessageCollection instance. So, this extra level of abstraction was
finally not used.
Releases: 0.9.0
|
|
|
|
mostly having to do with poor, missing or outdated documentation,
naming of confusing things and reordering of code blocks for improved
readability.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Not a permanent solution, but it looks for fdoc matching a given
msgid to avoid duplication of drafts in thunderbird folders.
|
|
Although the do_parse function is deferred to threads, we were actually
waiting till its return to fire the callback of the deferred, and hence
the "append ok" was being delayed. During massive appends, this was a
tight loop contributing as much as 35 msec, of a total of 100 msec
average.
Several ineficiencies are addressed here:
* use pycryptopp hash functions.
* avoiding function calling overhead.
* avoid duplicate call to message.as_string
* make use of the string size caching capabilities.
* avoiding the mail Parser initialization/method call completely,
in favor of the module helper to get the object from string.
Overall, these changes cut parsing to 50% of the initial timing by my
measurements with line_profiler, YMMV.
|
|
|
|
|
|
|
|
this can be done to save some msec, but additional measures
have to be taken to avoid inconsistencies with reads right after
this is done. we could make those wait until a second deferred
is done, for example.
|
|
|
|
|
|
and cut some more time by firing the callback as soon as we've got
an UID.
|
|
also, dispatch query for all headers to its own method.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So we're safe under the green lights before further rewriting.
:)
|
|
|
|
|
|
|
|
* Some more docstring completion/fixes.
* Removed unneeded str coertion.
* Handle mailbox name in logs.
* Separate manhole boilerplate into its own file.
|
|
because THE KEYS WILL BE STRINGS AFTER ADDED TO SOLEDAD
Can I remember that?
* Fix copy from local folders
* Fix copy when we already have a copy of the message in the inbox,
marked as deleted.
* Fix also bad deferred.succeed in add_msg when it already exist.
|
|
I must have removed this to get rid of a error with some test sample
during the testing of the branch, but it's absolutely needed so that
mime attachments get shown properly. If the TypeError raises
inapropiately due to some malformed part_map, then we will have to
catch it using a workaround somewhere else.
|
|
|
|
Passing along a deferred as an observer whose callback will be
called with the proper result.
Returning to thread in the appropiate points.
just let's remember that twisted APIs are not thread safe!
SoledadStore process_item also properly returned to thread.
Changed @deferred to @deferred_to_thread so it results less
confusing to read.
"know the territory". aha!
|
|
We pre-fetch the uids from soledad on mailbox initialization
|
|
|
|
Also, check for empty body-doc
|
|
* reorganize and simplify STORE command processing
* add the notification after the processing of the whole sequence
|
|
Also some fixes for None comparisons.
|
|
|
|
|
|
|
|
* add new/dirty deferred dict to notify when written to disk
* fix eventual duplication after copy
* fix flag flickering on first retrieval.
|