[dovecot-cvs] dovecot/src/imap cmd-idle.c,1.3,1.4
cras at procontrol.fi
cras at procontrol.fi
Thu Feb 20 21:57:12 EET 2003
Update of /home/cvs/dovecot/src/imap
In directory danu:/tmp/cvs-serv20345/imap
Modified Files:
cmd-idle.c
Log Message:
fixes
Index: cmd-idle.c
===================================================================
RCS file: /home/cvs/dovecot/src/imap/cmd-idle.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cmd-idle.c 20 Feb 2003 10:52:10 -0000 1.3
+++ cmd-idle.c 20 Feb 2003 19:57:10 -0000 1.4
@@ -9,7 +9,7 @@
#define DEFAULT_IDLE_CHECK_INTERVAL 30
-static void idle_finish(struct client *client)
+static void idle_finish(struct client *client, int done_ok)
{
if (client->idle_to != NULL) {
timeout_remove(client->idle_to);
@@ -25,16 +25,19 @@
client->io = io_add(i_stream_get_fd(client->input),
IO_READ, _client_input, client);
- _client_reset_command(client);
- client->bad_counter = 0;
-
client->mailbox->auto_sync(client->mailbox,
mailbox_check_interval != 0 ?
MAILBOX_SYNC_NO_EXPUNGES : MAILBOX_SYNC_NONE,
mailbox_check_interval);
client_sync_full(client);
- client_send_tagline(client, "OK Idle completed.");
+ if (done_ok)
+ client_send_tagline(client, "OK Idle completed.");
+ else
+ client_send_tagline(client, "BAD Expected DONE.");
+
+ _client_reset_command(client);
+ client->bad_counter = 0;
}
static void idle_client_input(void *context)
@@ -51,8 +54,7 @@
return;
case -2:
client->input_skip_line = TRUE;
- client_send_line(client, "* BAD Expected DONE.");
- idle_finish(client);
+ idle_finish(client, FALSE);
break;
}
@@ -60,11 +62,7 @@
if (client->input_skip_line)
client->input_skip_line = FALSE;
else {
- if (strcmp(line, "DONE") != 0) {
- client_send_line(client,
- "* BAD Expected DONE.");
- }
- idle_finish(client);
+ idle_finish(client, strcmp(line, "DONE") == 0);
break;
}
}
@@ -81,7 +79,7 @@
if (!client->mailbox->get_status(client->mailbox, STATUS_MESSAGES,
&status)) {
client_send_untagged_storage_error(client);
- idle_finish(client);
+ idle_finish(client, TRUE);
} else {
client->idle_expunge = status.messages+1;
client_send_line(client,
More information about the dovecot-cvs
mailing list