BUG: offlineimap3 fails with tunneled connections

Running offlineimap with tunneled connections fails.

The connection to the server is right, the server sends the
PREAUTH message, offlineimap reads it and provides a reply, something
like 'UID1 CAPABILITY'. This message is added to the output queue in
imaplib2.py, function _command():

 if literal is None:
     self.ouq.put(rqb)
     return rqb

Then, the function _writer() in imaplib2 calls the self.send() function:

 try:
     self.send(rqb.data)
     if __debug__: self._log(4, '> %r' % rqb.data)

self object is an IMAP4_Tunnel class, and the function send() writes the
message, but the message is not sent to the server.

We need flush the buffer.

Closes #30
This commit is contained in:
Rodolfo García Peñas (kix) 2020-12-28 18:09:10 +01:00
parent f5b0b829da
commit 63a1d865a8

View File

@ -164,6 +164,7 @@ class IMAP4_Tunnel(UsefulIMAPMixIn, IMAP4):
data = self.compressor.compress(data) data = self.compressor.compress(data)
data += self.compressor.flush(zlib.Z_SYNC_FLUSH) data += self.compressor.flush(zlib.Z_SYNC_FLUSH)
self.outfd.write(data) self.outfd.write(data)
self.outfd.flush()
def shutdown(self): def shutdown(self):
self.infd.close() self.infd.close()