changeset 928:0da2cb9368f6 HEAD

AUTHENTICATE command was broken.
author Timo Sirainen <tss@iki.fi>
date Thu, 09 Jan 2003 01:55:44 +0200
parents 935d0b1df754
children a763b3826762
files src/login/client-authenticate.c src/login/client.c src/login/client.h
diffstat 3 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/login/client-authenticate.c	Thu Jan 09 01:35:09 2003 +0200
+++ b/src/login/client-authenticate.c	Thu Jan 09 01:55:44 2003 +0200
@@ -251,6 +251,13 @@
 	if (!client_read(client))
 		return;
 
+	if (client->skip_line) {
+		if (i_stream_next_line(client->input) == NULL)
+			return;
+
+		client->skip_line = FALSE;
+	}
+
 	/* @UNSAFE */
 	line = i_stream_next_line(client->input);
 	if (line == NULL)
--- a/src/login/client.c	Thu Jan 09 01:35:09 2003 +0200
+++ b/src/login/client.c	Thu Jan 09 01:55:44 2003 +0200
@@ -178,8 +178,11 @@
 		imap_parser_reset(client->parser);
 
 		/* remove \r\n */
-		if (!client_skip_line(client))
-			return;
+		if (client->skip_line) {
+			if (!client_skip_line(client))
+				return;
+                        client->skip_line = FALSE;
+		}
 
 		client->cmd_finished = FALSE;
 	}
@@ -205,6 +208,7 @@
 		/* not enough data */
 		return;
 	}
+	client->skip_line = TRUE;
 
 	if (*client->cmd_tag == '\0' ||
 	    !client_command_execute(client, client->cmd_name, args)) {
--- a/src/login/client.h	Thu Jan 09 01:35:09 2003 +0200
+++ b/src/login/client.h	Thu Jan 09 01:55:44 2003 +0200
@@ -22,6 +22,7 @@
 
 	unsigned int tls:1;
 	unsigned int cmd_finished:1;
+	unsigned int skip_line:1;
 };
 
 struct client *client_create(int fd, struct ip_addr *ip, int imaps);