changeset 16785:b135d723acf3

director: Don't assert-crash if PASS lookup fails.
author Timo Sirainen <tss@iki.fi>
date Fri, 20 Sep 2013 09:46:31 +0300
parents 3da7f0dad08f
children 17389ac3cb66
files src/director/login-connection.c
diffstat 1 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/director/login-connection.c	Fri Sep 20 04:27:29 2013 +0300
+++ b/src/director/login-connection.c	Fri Sep 20 09:46:31 2013 +0300
@@ -77,7 +77,7 @@
 {
 	struct login_host_request *request = context;
 	struct director *dir = request->conn->dir;
-	const char *line;
+	const char *line, *line_params;
 	unsigned int secs;
 
 	if (ip != NULL) {
@@ -85,11 +85,16 @@
 		line = t_strdup_printf("%s\thost=%s\tproxy_refresh=%u",
 				       request->line, net_ip2addr(ip), secs);
 	} else {
-		i_assert(strncmp(request->line, "OK\t", 3) == 0);
+		if (strncmp(request->line, "OK\t", 3) == 0)
+			line_params = request->line + 3;
+		else if (strncmp(request->line, "PASS\t", 5) == 0)
+			line_params = request->line + 5;
+		else
+			i_panic("BUG: Unexpected line: %s", request->line);
 
 		i_error("director: User %s host lookup failed: %s",
 			request->username, errormsg);
-		line = t_strconcat("FAIL\t", t_strcut(request->line + 3, '\t'),
+		line = t_strconcat("FAIL\t", t_strcut(line_params, '\t'),
 				   "\ttemp", NULL);
 	}
 	login_connection_send_line(request->conn, line);