[PATCH] Allow SSL connections to send keep-alive messages

Sebastian Spaeth Sebastian at SSpaeth.de
Tue Mar 1 13:49:02 GMT 2011

From: Gábor Melis <mega at retes.hu>

This seems to prevent mysterious hangs with SSL imap servers (especially
gmail?) and does not harm in any case. So let us enable keep-alive
messages for ssl connections.
Our thread pool should be made more robust against closed SSL
connections (which do not always seem to raise Exceptions), and not
deadlock while waiting for resources or data that will never arrive.

Reviewed-by: Sebastian Spaeth <Sebastian at SSpaeth.de>
Signed-off-by: Gábor Melis <mega at retes.hu>
 offlineimap/imaplibutil.py |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/offlineimap/imaplibutil.py b/offlineimap/imaplibutil.py
index cf82996..7bd446a 100644
--- a/offlineimap/imaplibutil.py
+++ b/offlineimap/imaplibutil.py
@@ -111,6 +111,10 @@ class WrappedIMAP4_SSL(IMAP4_SSL):
             # FIXME
             raise socket.error(last_error)
+        # Allow sending of keep-alive message seems to prevent some servers
+        # from closing SSL on us leading to deadlocks
+        self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1)
         #connected to socket, now wrap it in SSL
             if self._cacertfile:

More information about the OfflineIMAP-project mailing list