changeset 6576:66e6311e22b3 HEAD

If ldap_bind() failed because LDAP server was down, we never reconnected. Patch by Brendan Braybrook.
author Timo Sirainen <tss@iki.fi>
date Sun, 21 Oct 2007 00:03:20 +0300
parents d573bc2a967d
children 5b2ff32877d4
files src/auth/db-ldap.c
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/db-ldap.c	Sun Oct 21 00:02:13 2007 +0300
+++ b/src/auth/db-ldap.c	Sun Oct 21 00:03:20 2007 +0300
@@ -499,7 +499,10 @@
 	msgid = ldap_bind(conn->ld, conn->set.dn, conn->set.dnpass,
 			  LDAP_AUTH_SIMPLE);
 	if (msgid == -1) {
-		db_ldap_connect_finish(conn, ldap_get_errno(conn));
+		if (db_ldap_connect_finish(conn, ldap_get_errno(conn)) < 0) {
+			/* lost connection, close it */
+			ldap_conn_close(conn, TRUE);
+		}
 		i_free(ldap_request);
 		return -1;
 	}