Mercurial > dovecot > core-2.2
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);