summaryrefslogtreecommitdiff
path: root/src/leap/mail/walk.py
AgeCommit message (Collapse)Author
2014-02-20mail parsing performance improvementsKali Kaneko
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.
2014-01-28Unset new flag after successful writeKali Kaneko
2014-01-23add check for none in part_map special caseKali Kaneko
2014-01-23add constants to dict keysKali Kaneko
2014-01-22Properly parse apple mailTomás Touceda
2014-01-13avoid failure if no content-typeKali Kaneko
2014-01-09Check for none in innerheadersKali Kaneko
This was causing a bug, among other things, when saving to the Sent folder for some messages. Closes #4914
2014-01-09check for noneKali Kaneko
2014-01-08Second stage of the new year's storage rewrite.Kali Kaneko
* documents of only three types: * flags * headers * content * add algorithm for walking the parsed message tree. * treat special cases like a multipart with a single part. * modify add_msg to use the walk routine * modify twisted interfaces to use the new storage schema. * tests for different multipart cases * fix multipart detection typo in the fetch This is a merge proposal for the 0.5.0-rc3. known bugs ---------- Some things are still know not to work well at this point (some cases of multipart messages do not display the bodies). IMAP server also is left in a bad internal state after a logout/login.