changeset 314:85763021565c

Don't confuse hangs in LOGIN and BYE.
author Timo Sirainen <tss@iki.fi>
date Thu, 10 Oct 2013 17:39:46 +0300
parents 809111aafc11
children 60543c769ff2
files src/client.c src/client.h src/imaptest.c
diffstat 3 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/client.c	Wed Oct 09 22:13:39 2013 +0300
+++ b/src/client.c	Thu Oct 10 17:39:46 2013 +0300
@@ -367,6 +367,7 @@
 		else
 			counters[client->last_cmd->state]++;
 		client_mailbox_close(client);
+		client->seen_bye = TRUE;
 		client->login_state = LSTATE_NONAUTH;
 	} else if (strcmp(str, "FLAGS") == 0) {
 		if (mailbox_state_set_flags(view, args) < 0)
--- a/src/client.h	Wed Oct 09 22:13:39 2013 +0300
+++ b/src/client.h	Thu Oct 10 17:39:46 2013 +0300
@@ -98,6 +98,7 @@
 	unsigned int qresync_enabled:1;
 	unsigned int disconnected:1;
 	unsigned int append_can_send:1;
+	unsigned int seen_bye:1;
 	unsigned int idling:1;
 	unsigned int idle_done_sent:1;
 
--- a/src/imaptest.c	Wed Oct 09 22:13:39 2013 +0300
+++ b/src/imaptest.c	Thu Oct 10 17:39:46 2013 +0300
@@ -124,7 +124,7 @@
 				    c[i]->global_id,
 				    (unsigned)(ioloop_time - c[i]->last_io));
 			cmds = array_get(&c[i]->commands, &cmdcount);
-			if (c[i]->login_state == LSTATE_NONAUTH)
+			if (c[i]->seen_bye)
 				str_append(str, "BYE, waiting for disconnect");
 			else if (cmdcount == 0)
 				str_append(str, states[c[i]->state].name);