changeset 20007:9e641f8027d2

imapc: Prepare for non-mailbox command retrying: Set reconnect_command_count earlier This probably doesn't fix itself anything yet, but is needed for the following changes.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 06 Apr 2016 14:12:25 +0300
parents 1a6732782f2a
children 5134d2a75add
files src/lib-imap-client/imapc-client.c src/lib-imap-client/imapc-connection.c src/lib-imap-client/imapc-connection.h
diffstat 3 files changed, 4 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-imap-client/imapc-client.c	Wed Apr 06 14:09:13 2016 +0300
+++ b/src/lib-imap-client/imapc-client.c	Wed Apr 06 14:12:25 2016 +0300
@@ -303,7 +303,6 @@
 	if (reply->state == IMAPC_COMMAND_STATE_OK) {
 		/* reopen the mailbox */
 		box->reopen_callback(box->reopen_context);
-		imapc_connection_set_reconnected(box->conn);
 	} else {
 		imapc_connection_abort_commands(box->conn, NULL, FALSE);
 	}
--- a/src/lib-imap-client/imapc-connection.c	Wed Apr 06 14:09:13 2016 +0300
+++ b/src/lib-imap-client/imapc-connection.c	Wed Apr 06 14:12:25 2016 +0300
@@ -1687,6 +1687,10 @@
 	i_assert(conn->login_callback == NULL);
 	conn->login_callback = login_callback;
 	conn->login_context = login_context;
+	/* if we get disconnected before we've finished all the pending
+	   commands, don't reconnect */
+	conn->reconnect_command_count = array_count(&conn->cmd_wait_list) +
+		array_count(&conn->cmd_send_queue);
 
 	imapc_connection_input_reset(conn);
 
@@ -2275,9 +2279,3 @@
 	cmd->idle = TRUE;
 	imapc_command_send(cmd, "IDLE");
 }
-
-void imapc_connection_set_reconnected(struct imapc_connection *conn)
-{
-	conn->reconnect_command_count = array_count(&conn->cmd_wait_list) +
-		array_count(&conn->cmd_send_queue);
-}
--- a/src/lib-imap-client/imapc-connection.h	Wed Apr 06 14:09:13 2016 +0300
+++ b/src/lib-imap-client/imapc-connection.h	Wed Apr 06 14:12:25 2016 +0300
@@ -52,6 +52,5 @@
 imapc_connection_get_mailbox(struct imapc_connection *conn);
 
 void imapc_connection_idle(struct imapc_connection *conn);
-void imapc_connection_set_reconnected(struct imapc_connection *conn);
 
 #endif