finishes. */
IMAPC_COMMAND_FLAG_RETRIABLE = 0x04,
/* This is the LOGOUT command. Use a small timeout for it. */
- IMAPC_COMMAND_FLAG_LOGOUT = 0x08
+ IMAPC_COMMAND_FLAG_LOGOUT = 0x08,
+ /* Command is being resent after a reconnection. */
+ IMAPC_COMMAND_FLAG_RECONNECTED = 0x10
};
enum imapc_client_ssl_mode {
(cmd->flags & IMAPC_COMMAND_FLAG_RETRIABLE) != 0) {
cmd->send_pos = 0;
cmd->wait_for_literal = 0;
+ cmd->flags |= IMAPC_COMMAND_FLAG_RECONNECTED;
i++;
} else {
array_delete(cmd_array, i, 1);
}
if (conn->reconnect_command_count > 0 &&
- (cmd->flags & IMAPC_COMMAND_FLAG_PRELOGIN) == 0) {
+ (cmd->flags & IMAPC_COMMAND_FLAG_RECONNECTED) != 0) {
if (--conn->reconnect_command_count == 0) {
/* we've received replies for all the commands started
before reconnection. if we get disconnected now, we