void imapc_client_mailbox_reconnect(struct imapc_client_mailbox *box)
{
- bool reconnect = imapc_client_mailbox_can_reconnect(box);
+ i_assert(!box->reconnecting);
- if (reconnect) {
- i_assert(!box->reconnecting);
- box->reconnecting = TRUE;
- }
- imapc_connection_disconnect(box->conn);
- if (reconnect) {
- imapc_connection_connect(box->conn,
- imapc_client_reconnect_cb, box);
- }
+ box->reconnecting = TRUE;
/* if we fail again, avoid reconnecting immediately. if the server is
broken we could just get into an infinitely failing reconnection
loop. */
box->reconnect_ok = FALSE;
+
+ imapc_connection_disconnect(box->conn);
+ imapc_connection_connect(box->conn, imapc_client_reconnect_cb, box);
}
void imapc_client_mailbox_close(struct imapc_client_mailbox **_box)