[dovecot-cvs] dovecot/src/auth db-ldap.c,1.18,1.19 userdb-ldap.c,1.11,1.12

cras at procontrol.fi cras at procontrol.fi
Fri Aug 22 09:06:55 EEST 2003


Update of /home/cvs/dovecot/src/auth
In directory danu:/tmp/cvs-serv8544

Modified Files:
	db-ldap.c userdb-ldap.c 
Log Message:
Give better error message if uid/gid not found from ldap and no default was
set.



Index: db-ldap.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/db-ldap.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- db-ldap.c	22 Aug 2003 03:14:45 -0000	1.18
+++ db-ldap.c	22 Aug 2003 05:06:53 -0000	1.19
@@ -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;

Index: userdb-ldap.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/userdb-ldap.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- userdb-ldap.c	8 May 2003 04:28:30 -0000	1.11
+++ userdb-ldap.c	22 Aug 2003 05:06:53 -0000	1.12
@@ -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();
 }
 



More information about the dovecot-cvs mailing list