dovecot-2.1: imapc: When asking for capabilities, try to ask fro...

dovecot at dovecot.org dovecot at dovecot.org
Sun Oct 9 20:38:33 EEST 2011


details:   http://hg.dovecot.org/dovecot-2.1/rev/337f4e427bb1
changeset: 13630:337f4e427bb1
user:      Timo Sirainen <tss at iki.fi>
date:      Sun Oct 09 20:46:53 2011 +0300
description:
imapc: When asking for capabilities, try to ask from a logged in connection.

diffstat:

 src/lib-imap-client/imapc-client.c |  12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diffs (23 lines):

diff -r 8a2ec8284b61 -r 337f4e427bb1 src/lib-imap-client/imapc-client.c
--- a/src/lib-imap-client/imapc-client.c	Sun Oct 09 20:46:28 2011 +0300
+++ b/src/lib-imap-client/imapc-client.c	Sun Oct 09 20:46:53 2011 +0300
@@ -358,9 +358,17 @@
 imapc_client_get_capabilities(struct imapc_client *client)
 {
 	struct imapc_client_connection *const *connp;
+	struct imapc_connection *conn = NULL;
 
-	connp = array_idx(&client->conns, 0);
-	return imapc_connection_get_capabilities((*connp)->conn);
+	/* try to find a connection that is already logged in */
+	array_foreach(&client->conns, connp) {
+		conn = (*connp)->conn;
+		if (imapc_connection_get_state(conn) == IMAPC_CONNECTION_STATE_DONE)
+			return imapc_connection_get_capabilities(conn);
+	}
+
+	/* fallback to whatever exists (there always exists one) */
+	return imapc_connection_get_capabilities(conn);
 }
 
 int imapc_client_create_temp_fd(struct imapc_client *client,


More information about the dovecot-cvs mailing list