From 3db3f4718e05751ef3541742552d33e7fc4a3937 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Sun, 26 Oct 2014 22:03:51 +0100 Subject: [PATCH] remove stray CRLF from AUTHENTICATE continuations this re-introduces 6741bc94 (just a bit differently), thus effectively reverting fbfcfea5. i suppose this extra CRLF is needed by a broken CRAM-MD5 implementation of some server, which is why it was there in the original implementation as well. however, it breaks more pedantic non-broken servers. if somebody complains, we'll need to add a much more sophisticated hack. --- src/drv_imap.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/drv_imap.c b/src/drv_imap.c index 0cbe81c..21499c8 100644 --- a/src/drv_imap.c +++ b/src/drv_imap.c @@ -1270,7 +1270,8 @@ imap_socket_read( void *aux ) ctx->trashnc = TrashKnown; /* Can't get NO [TRYCREATE] any more. */ p = cmdp->param.data; cmdp->param.data = 0; - if (socket_write( &ctx->conn, p, cmdp->param.data_len, GiveOwn ) < 0) + if (socket_write( &ctx->conn, p, cmdp->param.data_len, GiveOwn ) < 0 || + socket_write( &ctx->conn, "\r\n", 2, KeepOwn ) < 0) return; } else if (cmdp->param.cont) { if (cmdp->param.cont( ctx, cmdp, cmd )) @@ -1279,8 +1280,6 @@ imap_socket_read( void *aux ) error( "IMAP error: unexpected command continuation request\n" ); break; } - if (socket_write( &ctx->conn, "\r\n", 2, KeepOwn ) < 0) - return; } else { tag = atoi( arg ); for (pcmdp = &ctx->in_progress; (cmdp = *pcmdp); pcmdp = &cmdp->next)