summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2015-07-13[feature] add very basic support for message sequence numbersKali Kaneko
this is just the bare minimum implementation of MSN (message sequence numbers). It is not enough feature-wise, but I'm doing it now just to support testing with the default imap client that we're using with the regression tests.
2015-07-13[bug] Return the first cdoc if no body foundKali Kaneko
In the case of a message with just one non-text attachment, something has to be returned for the body payload. (For instance, a message with only one image).
2015-07-13[bug] do not raise if the pending insert cannot be removedKali Kaneko
2015-07-13[bug] fix keyerror when inserting msg on pending_inserts dictKali Kaneko
The decission to index the pending_inserts dict by message-id is a bit brittle. I assume any well-formed message in the RealWorld (tm) will have this header, but many samples used in the tests will break this assumption.
2015-07-13[bug] workaround for off-by-one error on nested multipartKali Kaneko
For some reason that I haven't discovered yet, nested multipart is hitting an off-by-one error (that had been wrongly ammended in a previous commit, breaking many other cases but fixing the particular Mail.app sample I was working with). This is just a temporary hack to make all the current regression tests happy, but further investigation is needed to discover the cause of the off-by-one part retrieval solved and correctly documented.
2015-07-13[bug] fix the rendering of nested multipartKali Kaneko
This commit fix a very simplistic and until now broken handling of nested multipart that went undetected due to the structure of the mails used in tests until now. Incidentally, the way that Mail.app structures attachments made this bug noticeable. There was also an off-by-one indexing error when retrieving the subpart message for a given subpart. Be aware that the current implementation will only handle correctly 2 levels of multipart nesting. Extending beyond in a more generic way will need further work. Closes: #7244
2015-07-03[bug] notify copied emailsRuben Pollan
When copying emails there was not notification produced, that makes thunderbird to see messages moved between folders until it gets restarted. Now the MaillCollection copy does notify the listeners. * Resolves: #7158
2015-07-02[bug] return the message uid after add it to the collectionRuben Pollan
MessageCollection.add_msg was not returning the uid of the message added making the incoming service not deleting the emails from the incoming queue. * Related: #7158
2015-07-02[bug] tear down of leap.common.events properly in testsRuben Pollan
The tests where writting their own implementation of env tear down instead of using leap.common's one. Using it fixes many tests.
2015-06-29[bug] allow mailbox to be notified of collection changesKali Kaneko
in a previous refactor, we decoupled the incoming mail service from the IMAP layer. However, this left the IMAPMailbox unable to react to changes in the underlying collection when a new message is inserted. in this commit, we add a Listener mechanism to the collection itself, so that IMAPMailbox (and any other object that uses it) can subscribe to changes on the number of messages of the collection. Resolves: #7191 Releases: 0.4.0
2015-06-29[bug] avoid KeyError on pending_insert_docs lookupKali Kaneko
in a previous commit, there was a bug inserted in which a key lookup was being made unconditionally, even when the pending_insert_docs was None. Releases: 0.4.0
2015-06-25[bug] avoid duplication of copies in draft folderKali Kaneko
Although this draft-saving feature seems to be somehow brittle, since it breaks from time to time, the causes are different and subtle on each case. This time the bug is related to having the notify_just_mdoc (or fast_notifies as I'm tempted to call it in the future for more clarity) set to True by default in the APPENDS. Fast notifies break the "save draft" functionality because what Thunderbird does is an Append of the newest message, followed by deletion of the old message and a SEARCH by Message-ID. For this we need the headers-doc to be already inserted in the store. Since the fast-notify makes a *big* difference in terms of insertion times for serialized appends, I've opted for using a heuristic for detecting if it's the case of a Draft message, using a mozilla-specific header. If this is found, we set the notify_just_mdoc unconditionally to False. We'll deal with other MUAs on its due time. Releases: 0.4.0
2015-06-25[bug] saving message to drafts folder hangsKali Kaneko
the bug consist on a fetch-while-pending-inserts hanging. the pending insert dict was not being cleaned up because the lookup for the Message-Id *is* case-sensitive (in the headers dict). by using a temporary all-keys-lowercase dict the lookup can be performed right, and the fetch returns successfully. at this point there's still a pending bug with Drafts, and it is that the new version is inserted but the MUA (TB) doesn't hide the older version (although a Delete flag is added). Resolves: #7189, #7190 Releases: 0.4.0
2015-06-22[bug] fixes for display attachments and move between folders0.4.0-alphaKali Kaneko
- Add errback handling to catch properly errors that were not allowing the complete insertion of the parts for a given message. Fixes blank attachments and moving of messages to different folders. - Force overwritting of mdoc when it is a copy. This was avoiding a message to be copied back to a folder from where it already had been copied to another (since the mdoc was already existing there, with the same doc_id, which was forbidding the creation of the new one). This case also needs special care in the indexer, since we have to delete the old hash entry first. Closes: #7178, #7158
2015-06-18[style] pep8 and unused imports cleanupdrebs
2015-06-18[doc] update smtp gateway doc on message encryptiondrebs
Closes: #7169.
2015-06-10[refactor] remove unneeded conditionalKali Kaneko
2015-06-09[bug] pass the doclist to the ui signalKali Kaneko
before, we were taking the length of a string, signalling an incorrect number to the ui. currently this event is not being used, just only logged. in the future the ui could probably might want to make use of this info to keep record of a separate counter (how many mails received in the last sync).
2015-06-09[refactor] log failure properlyKali Kaneko
2015-06-05[refactor] deprecate old incoming indexKali Kaneko
2015-06-05[feature] use operation, doesn't return resultKali Kaneko
2015-06-05[bug] prevent missing uid table exceptionKali Kaneko
2015-06-05[refactor] move hooks to accountKali Kaneko
2015-06-05[feature] post-sync mail processing hooksKali Kaneko
using the new soledad plugin capablity, mail hooks to the post-sync event by subscribing to the Meta-Doc type of documents. In this way, we can create the uid tables and the uid entries needed to keep local indexes for mail that has been processed in another instance. however, this won't prevent a conflict if a given mail is received and processed in two different instances. that is a problem that we still have to deal with. Resolves: #6996 Releases: 0.4.0
2015-05-14[feat] adapt to new events api on commonIvan Alejandro
- Related: #6359
2015-04-28[feature] implement substring body fetchKali Kaneko
Current twisted implementation correctly parses partial fetches using substrings by use of angle brackets (see section 6.4.5 of imap rfc), but no use is made of the requested substring in the spew_body method. this commit minimally implements conformance to the substring request, although further boundary checks should be made (ie, checking whether the starting octet is beyond the end of the text). Resolves: #6841 Releases: 0.4.0
2015-03-30[bug] fix early append notificationKali Kaneko
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
2015-03-30[bug] move creation_ts to mail generic apiKali Kaneko
This also fixes a bug in which INBOX wasn't being given a creation timestamp, and therefore always being identified with the same UIDVALIDITY = 1, which could be confusing MUAs since this value should be unique, and it's relied on to uniquely identifying a given message. Releases: 0.4.0
2015-03-30[feature] make deferred list error-tolerantKali Kaneko
just in case Releases: 0.4.0
2015-03-30[bug] temporary workaround to allow display on some muasKali Kaneko
Until we implement sequences, this avoids breaking with certain MUAs like mutt. Releases: 0.4.0
2015-03-30[bug] re-add fix for multiple headersKali Kaneko
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
2015-03-23[bug] report the correct size for mime partsKali Kaneko
The MIME size is the size of the body, w/o counting the headers. Releases: 0.4.0
2015-03-23[bug] fix wrong case in the boundary passed in BODYSTRUCTUREKali Kaneko
By removing this call to lower(), we avoid a bug in which the BODYSTRUCTURE response returns a boundary all in lower case. Should send patch upstream to twisted. Related: #6773
2015-03-23[bug] add extra CRLF to avoid bad mime parsing in ThunderbirdKali Kaneko
Thunderbird (as of 37.0b1) will display a blank body (with no attachments) if some conditions are met: * disk synchronization is disabled * mime_part_on_demand = true * msg size is bigger than the parts_on_demand threshold (30000 by default). Comparing the logs with a well behaved imap server (dovecot, on this case), it's easy to see that twisted implementation is lacking an extra line separator at the end of each group of headers that is rendered in response to each of the `BODY.PEEK[X.MIME]` command that the mime_parts_on_demand will issue after getting the BODYSTRUCTURE. This change patches the spew_body command on the body server. We still would have to see if this is a bad behaviour in the thunderbird side. The most similar bug I've found is: https://bugzilla.mozilla.org/show_bug.cgi?id=149771 Which apparently was happening with exchange server. We should send the patch to upstream twisted as well. Note that this fix is not enough: the following commit, about fixing the case of the boundary passed in the BODYSTRUCTURE response is also needed to fix the bug (since a bad parsing happens all the same). Resolves: #6773, #5010 Documentation: #6773 Releases: 0.4.0
2015-03-05[bug] catch null doc_id error, and log it as suchKali Kaneko
Catch null doc_id so that we don't interrupt server This bug needs further investigation Related: #6769 ?
2015-03-05[feature] Keep mapping of collectionsKali Kaneko
it is a weakref dictionary so that the collections can be garbage collected when out of scope. Releases: 0.4.0
2015-03-03[bug] Fix testExpunge testsKali Kaneko
this test was failing randomly because we were returning the deferred before all the documents were saved into soledad store. changed also the delete_msg deferred chaining for better readability. Releases: 0.9.0
2015-03-03[bug] Fix IllegalMailboxCreateKali Kaneko
We're raising the exception now, not a Failure. Releases: 0.9.0
2015-03-03[refactor] remove dead code in IMAP implementationKali Kaneko
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
2015-03-03cast generator to list; change expected after renameKali Kaneko
2015-03-03pass date explicitely, fix partial_append testKali Kaneko
it is interpreted as "tags" otherwise.
2015-03-03fix rename_mailbox implementation, make test passKali Kaneko
2015-03-03[bug] increment: avoid TypeError when there's no entries in tableKali Kaneko
2015-03-03fix MessageTestCase: keep ref to inserted mbox uuidKali Kaneko
2015-03-03fix delete_msg testKali Kaneko
bug: delete_msg was still passing the mbox_name instead of the mbox_uuid as it should.
2015-03-03properly catch TypeError exceptionKali Kaneko
* fix get_next_uid test * remove duplication of maybe_first_query_item, since get_last_uid also do it now.
2015-02-25undo duplication of add_msg method in mail apiKali Kaneko
* Set the internal date from within the incoming mail service.
2015-02-24move notifications cb to mail moduleKali Kaneko
2015-02-23factor out unicode formattingKali Kaneko
2015-02-20fix typo on method nameKali Kaneko