diff options
author | Kali Kaneko <kali@leap.se> | 2014-01-21 01:04:37 -0400 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2014-01-21 12:20:06 -0400 |
commit | 22c106a7306446a3fa9689f5942a86a53ec884b4 (patch) | |
tree | 95b8b8bf480263e78b014250290c49bbdce94fea /src | |
parent | 06e41f008d5e42f1fc0e535b6c882c78bac2ad96 (diff) |
workaround for recursionlimit due to qtreactor
Diffstat (limited to 'src')
-rw-r--r-- | src/leap/mail/imap/mailbox.py | 4 | ||||
-rw-r--r-- | src/leap/mail/imap/messages.py | 2 | ||||
-rw-r--r-- | src/leap/mail/imap/service/imap.py | 23 |
3 files changed, 23 insertions, 6 deletions
diff --git a/src/leap/mail/imap/mailbox.py b/src/leap/mail/imap/mailbox.py index 174361f..38c58cb 100644 --- a/src/leap/mail/imap/mailbox.py +++ b/src/leap/mail/imap/mailbox.py @@ -765,6 +765,10 @@ class SoledadMailbox(WithMsgFields, MBoxParser): uid_next = self.getUIDNext() msg = messageObject + # XXX DEBUG ---------------------------------------- + #print "copying MESSAGE from %s (%s) to %s (%s)" % ( + #msg._mbox, msg._uid, self.mbox, uid_next) + # XXX should use a public api instead fdoc = msg._fdoc if not fdoc: diff --git a/src/leap/mail/imap/messages.py b/src/leap/mail/imap/messages.py index 378738e..cd4d85f 100644 --- a/src/leap/mail/imap/messages.py +++ b/src/leap/mail/imap/messages.py @@ -528,7 +528,6 @@ class LeapMessage(fields, MailParser, MBoxParser): body = self._bdoc.content.get(self.RAW_KEY, "") content_type = bdoc.content.get('content-type', "") charset = first(CHARSET_RE.findall(content_type)) - logger.debug("Got charset from header: %s" % (charset,)) if not charset: charset = self._get_charset(body) try: @@ -665,7 +664,6 @@ class LeapMessage(fields, MailParser, MBoxParser): try: pmap_dict = self._get_part_from_parts_map(part + 1) except KeyError: - logger.debug("getSubpart for %s: KeyError" % (part,)) raise IndexError return MessagePart(self._soledad, pmap_dict) diff --git a/src/leap/mail/imap/service/imap.py b/src/leap/mail/imap/service/imap.py index a1d3ab7..ad22da6 100644 --- a/src/leap/mail/imap/service/imap.py +++ b/src/leap/mail/imap/service/imap.py @@ -49,6 +49,25 @@ from leap.common.events.events_pb2 import IMAP_SERVICE_STARTED from leap.common.events.events_pb2 import IMAP_SERVICE_FAILED_TO_START from leap.common.events.events_pb2 import IMAP_CLIENT_LOGIN +###################################################### +# Temporary workaround for RecursionLimit when using +# qt4reactor. Do remove when we move to poll or select +# reactor, which do not show those problems. See #4974 +import resource +import sys + +try: + sys.setrecursionlimit(10**6) +except Exception: + print "Error setting recursion limit" +try: + # Increase max stack size from 8MB to 256MB + resource.setrlimit(resource.RLIMIT_STACK, (2**28, -1)) +except Exception: + print "Error setting stack size" + +###################################################### + class LeapIMAPServer(imap4.IMAP4Server): """ @@ -118,14 +137,10 @@ class LeapIMAPServer(imap4.IMAP4Server): method """ from twisted.internet import reactor - log.msg("LEAP Overwritten fetch...") if not query: self.sendPositiveResponse(tag, 'FETCH complete') return # XXX ??? - print "QUERY ", query - print query[0] - cbFetch = self._IMAP4Server__cbFetch ebFetch = self._IMAP4Server__ebFetch |