changeset 1709:044fdf70f11a HEAD

Give better error message if uid/gid not found from ldap and no default was set.
author Timo Sirainen <tss@iki.fi>
date Fri, 22 Aug 2003 08:06:53 +0300
parents 0731fc436585
children f1377239867e
files src/auth/db-ldap.c src/auth/userdb-ldap.c
diffstat 2 files changed, 17 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/auth/db-ldap.c	Fri Aug 22 07:57:49 2003 +0300
+++ b/src/auth/db-ldap.c	Fri Aug 22 08:06:53 2003 +0300
@@ -54,8 +54,8 @@
 	MEMBER(pass_attrs) NULL,
 	MEMBER(pass_filter) NULL,
 	MEMBER(default_pass_scheme) "crypt",
-	MEMBER(user_global_uid) 0,
-	MEMBER(user_global_gid) 0
+	MEMBER(user_global_uid) (uid_t)-1,
+	MEMBER(user_global_gid) (gid_t)-1
 };
 
 static struct ldap_connection *ldap_connections = NULL;
--- a/src/auth/userdb-ldap.c	Fri Aug 22 07:57:49 2003 +0300
+++ b/src/auth/userdb-ldap.c	Fri Aug 22 08:06:53 2003 +0300
@@ -127,18 +127,25 @@
 		attr = ldap_next_attribute(conn->ld, entry, ber);
 	}
 
-	if (user.virtual_user == NULL) {
+	if (user.virtual_user == NULL)
 		i_error("LDAP: No username in reply");
-		urequest->userdb_callback(NULL, request->context);
+	else if (user.uid == (uid_t)-1) {
+		i_error("ldap(%s): uidNumber not set and no default given in "
+			"user_global_uid", user.virtual_user);
+	} else if (user.gid == (gid_t)-1) {
+		i_error("ldap(%s): gidNumber not set and no default given in "
+			"user_global_gid", user.virtual_user);
+	} else if (ldap_next_entry(conn->ld, entry) != NULL) {
+		i_error("ldap(%s): Multiple replies found for user",
+			user.virtual_user);
 	} else {
-		if (ldap_next_entry(conn->ld, entry) != NULL) {
-			i_error("LDAP: Multiple replies found for user %s",
-				user.virtual_user);
-		} else {
-			urequest->userdb_callback(&user, request->context);
-		}
+		urequest->userdb_callback(&user, request->context);
+		t_pop();
+		return;
 	}
 
+	/* error */
+	urequest->userdb_callback(NULL, request->context);
 	t_pop();
 }