[dovecot-cvs] dovecot/src/imap cmd-idle.c,1.30.2.2,1.30.2.3

tss at dovecot.org tss at dovecot.org
Sat Nov 18 21:29:58 UTC 2006


Update of /var/lib/cvs/dovecot/src/imap
In directory talvi:/tmp/cvs-serv5322

Modified Files:
      Tag: branch_1_0
	cmd-idle.c 
Log Message:
If syncing finished with an error and client had disconnected, we
assert-crashed in io_add().



Index: cmd-idle.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/imap/cmd-idle.c,v
retrieving revision 1.30.2.2
retrieving revision 1.30.2.3
diff -u -d -r1.30.2.2 -r1.30.2.3
--- cmd-idle.c	12 Nov 2006 11:31:40 -0000	1.30.2.2
+++ cmd-idle.c	18 Nov 2006 21:29:56 -0000	1.30.2.3
@@ -173,11 +173,6 @@
 	struct client *client = cmd->client;
 	struct cmd_idle_context *ctx = cmd->context;
 
-	if (client->output->closed) {
-		idle_finish(ctx, FALSE);
-		return TRUE;
-	}
-
 	if (ctx->manual_cork)  {
 		/* we're coming from idle_callback instead of a normal
 		   I/O handler, so we'll have to do corking manually */
@@ -220,6 +215,10 @@
 		o_stream_uncork(client->output);
 	}
 
+	if (client->output->closed) {
+		idle_finish(ctx, FALSE);
+		return TRUE;
+	}
 	if (client->io == NULL) {
 		/* input is pending */
 		client->io = io_add(i_stream_get_fd(client->input),



More information about the dovecot-cvs mailing list