[dovecot-cvs] dovecot/src/imap client.c, 1.64, 1.65 client.h, 1.34, 1.35 cmd-append.c, 1.74, 1.75 imap-sync.c, 1.17, 1.18

cras at dovecot.org cras at dovecot.org
Sun Jan 29 14:41:40 EET 2006


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

Modified Files:
	client.c client.h cmd-append.c imap-sync.c 
Log Message:
And the final fix for APPEND hangs ;)



Index: client.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/imap/client.c,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -d -r1.64 -r1.65
--- client.c	29 Jan 2006 12:14:46 -0000	1.64
+++ client.c	29 Jan 2006 12:41:37 -0000	1.65
@@ -16,8 +16,6 @@
 static struct client *my_client; /* we don't need more than one currently */
 static struct timeout *to_idle;
 
-static int _client_output(void *context);
-
 struct client *client_create(int fd_in, int fd_out,
 			     struct namespace *namespaces)
 {
@@ -426,7 +424,7 @@
 		client_destroy(client);
 }
 
-static int _client_output(void *context)
+int _client_output(void *context)
 {
 	struct client *client = context;
 	struct client_command_context *cmd = &client->cmd;

Index: client.h
===================================================================
RCS file: /var/lib/cvs/dovecot/src/imap/client.h,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -r1.34 -r1.35
--- client.h	29 Jan 2006 12:14:46 -0000	1.34
+++ client.h	29 Jan 2006 12:41:37 -0000	1.35
@@ -89,5 +89,6 @@
 
 void _client_reset_command(struct client *client);
 void _client_input(void *context);
+int _client_output(void *context);
 
 #endif

Index: cmd-append.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/imap/cmd-append.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- cmd-append.c	29 Jan 2006 12:33:13 -0000	1.74
+++ cmd-append.c	29 Jan 2006 12:41:37 -0000	1.75
@@ -126,6 +126,8 @@
 		mailbox_close(&ctx->box);
 
 	ctx->client->bad_counter = 0;
+	o_stream_set_flush_callback(ctx->client->output,
+				    _client_output, ctx->client);
 }
 
 static bool cmd_append_continue_cancel(struct client_command_context *cmd)

Index: imap-sync.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/imap/imap-sync.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- imap-sync.c	29 Jan 2006 12:33:13 -0000	1.17
+++ imap-sync.c	29 Jan 2006 12:41:37 -0000	1.18
@@ -216,10 +216,6 @@
 		return TRUE;
 	}
 
-	/* make sure that flush callback gets set to normal. this is
-	   currently needed only with APPEND. */
-	_client_reset_command(cmd->client);
-
 	if ((client_workarounds & WORKAROUND_DELAY_NEWMAIL) != 0 &&
 	    (flags & MAILBOX_SYNC_FLAG_FAST) != 0) {
 		/* expunges might break just as badly as new mail



More information about the dovecot-cvs mailing list