From: Timo Sirainen Date: Fri, 20 Sep 2013 06:46:31 +0000 (+0300) Subject: director: Don't assert-crash if PASS lookup fails. X-Git-Tag: 2.2.6~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=44875c83e0fa7111571262686818d8de43a57b2f;p=thirdparty%2Fdovecot%2Fcore.git director: Don't assert-crash if PASS lookup fails. --- diff --git a/src/director/login-connection.c b/src/director/login-connection.c index c211626e8f..e88cf7c5ac 100644 --- a/src/director/login-connection.c +++ b/src/director/login-connection.c @@ -77,7 +77,7 @@ login_host_callback(const struct ip_addr *ip, const char *errormsg, { 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 @@ login_host_callback(const struct ip_addr *ip, const char *errormsg, 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);