The code that was supposed to do the retrying was never actually called.
This is because move_back_start was always 0, so it always went to the
"we've waited long enough" code path.
int max_secs = client->input_pending ?
IMAP_CLIENT_MOVE_BACK_WITH_INPUT_TIMEOUT_SECS :
IMAP_CLIENT_MOVE_BACK_WITHOUT_INPUT_TIMEOUT_SECS;
- if (ioloop_time - client->move_back_start > max_secs) {
+ if (client->move_back_start != 0 &&
+ ioloop_time - client->move_back_start > max_secs) {
/* we've waited long enough */
imap_client_destroy(&client, error);
return TRUE;