Mercurial > dovecot > core-2.2
changeset 13630:337f4e427bb1
imapc: When asking for capabilities, try to ask from a logged in connection.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Sun, 09 Oct 2011 20:46:53 +0300 |
parents | 8a2ec8284b61 |
children | d2608fc3c9e2 |
files | src/lib-imap-client/imapc-client.c |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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,