From: Timo Sirainen Date: Sun, 9 Oct 2011 17:46:53 +0000 (+0300) Subject: imapc: When asking for capabilities, try to ask from a logged in connection. X-Git-Tag: 2.1.beta1~49 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=019ae3c13b4ec19d0448674d014787ef27556e98;p=thirdparty%2Fdovecot%2Fcore.git imapc: When asking for capabilities, try to ask from a logged in connection. --- diff --git a/src/lib-imap-client/imapc-client.c b/src/lib-imap-client/imapc-client.c index 0a99ffa5bf..343e84a8a2 100644 --- a/src/lib-imap-client/imapc-client.c +++ b/src/lib-imap-client/imapc-client.c @@ -358,9 +358,17 @@ enum imapc_capability 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,