summaryrefslogtreecommitdiff
path: root/src/leap/mail/imap/server.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2014-01-28 18:39:59 -0400
committerKali Kaneko <kali@leap.se>2014-01-30 14:20:44 -0400
commita7e0054b595822325f749b0b1df7d25cab4e6486 (patch)
treeca1434b4bc03ccca4dcdd9519b3973da179d4809 /src/leap/mail/imap/server.py
parentf096368cfbc49caab52811ae50388aae74272a1a (diff)
docstring fixes
Also some fixes for None comparisons.
Diffstat (limited to 'src/leap/mail/imap/server.py')
-rw-r--r--src/leap/mail/imap/server.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/leap/mail/imap/server.py b/src/leap/mail/imap/server.py
index 3a6ac9a..b77678a 100644
--- a/src/leap/mail/imap/server.py
+++ b/src/leap/mail/imap/server.py
@@ -20,6 +20,7 @@ Leap IMAP4 Server Implementation.
from copy import copy
from twisted import cred
+from twisted.internet import defer
from twisted.internet.defer import maybeDeferred
from twisted.internet.task import deferLater
from twisted.mail import imap4
@@ -132,6 +133,7 @@ class LeapIMAPServer(imap4.IMAP4Server):
).addErrback(
ebFetch, tag)
+ # XXX should be a callback
deferLater(reactor,
2, self.mbox.unset_recent_flags, messages)
deferLater(reactor, 1, self.mbox.signal_unread_to_ui)
@@ -139,12 +141,17 @@ class LeapIMAPServer(imap4.IMAP4Server):
select_FETCH = (do_FETCH, imap4.IMAP4Server.arg_seqset,
imap4.IMAP4Server.arg_fetchatt)
+ def on_copy_finished(self, defers):
+ d = defer.gatherResults(filter(None, defers))
+ d.addCallback(self.notifyNew)
+ d.addCallback(self.mbox.signal_unread_to_ui)
+
def do_COPY(self, tag, messages, mailbox, uid=0):
from twisted.internet import reactor
- imap4.IMAP4Server.do_COPY(self, tag, messages, mailbox, uid)
- deferLater(reactor,
- 2, self.mbox.unset_recent_flags, messages)
- deferLater(reactor, 1, self.mbox.signal_unread_to_ui)
+ defers = []
+ d = imap4.IMAP4Server.do_COPY(self, tag, messages, mailbox, uid)
+ defers.append(d)
+ deferLater(reactor, 0, self.on_copy_finished, defers)
select_COPY = (do_COPY, imap4.IMAP4Server.arg_seqset,
imap4.IMAP4Server.arg_astring)
@@ -201,5 +208,5 @@ class LeapIMAPServer(imap4.IMAP4Server):
# back to the source mailbox...
print "faking checkpoint..."
import time
- time.sleep(2)
+ time.sleep(5)
return None