[dovecot-cvs] dovecot/src/auth db-passwd-file.c,1.6,1.7 db-passwd-file.h,1.2,1.3 passdb-passwd-file.c,1.7,1.8 userdb-passwd-file.c,1.4,1.5

cras at procontrol.fi cras at procontrol.fi
Wed Apr 16 17:38:20 EEST 2003


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

Modified Files:
	db-passwd-file.c db-passwd-file.h passdb-passwd-file.c 
	userdb-passwd-file.c 
Log Message:
passwd-file fixes. passdb ignores now fields after password, so it can work
with shadow-like file.



Index: db-passwd-file.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/db-passwd-file.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- db-passwd-file.c	16 Mar 2003 14:33:29 -0000	1.6
+++ db-passwd-file.c	16 Apr 2003 13:38:17 -0000	1.7
@@ -153,7 +153,9 @@
 		args = t_strsplit(line, ":");
 		if (args[1] != NULL) {
 			/* at least two fields */
-			passwd_file_add(pw, args[0], args[1], args+2);
+			const char *no_args = NULL;
+			passwd_file_add(pw, args[0], args[1],
+					pw->userdb ? args+2 : &no_args);
 		}
 		t_pop();
 	}
@@ -191,13 +193,14 @@
 	}
 }
 
-struct passwd_file *db_passwd_file_parse(const char *path)
+struct passwd_file *db_passwd_file_parse(const char *path, int userdb)
 {
 	struct passwd_file *pw;
 
 	pw = i_new(struct passwd_file, 1);
 	pw->refcount = 1;
 	pw->path = i_strdup(path);
+	pw->userdb = userdb;
 
 	passwd_file_open(pw);
 	return pw;

Index: db-passwd-file.h
===================================================================
RCS file: /home/cvs/dovecot/src/auth/db-passwd-file.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- db-passwd-file.h	18 Feb 2003 19:11:26 -0000	1.2
+++ db-passwd-file.h	16 Apr 2003 13:38:17 -0000	1.3
@@ -23,6 +23,7 @@
 	char *path;
 	time_t stamp;
 	int fd;
+	int userdb;
 
 	struct hash_table *users;
 };
@@ -33,7 +34,7 @@
 struct passwd_user *
 db_passwd_file_lookup(struct passwd_file *pw, const char *user);
 
-struct passwd_file *db_passwd_file_parse(const char *path);
+struct passwd_file *db_passwd_file_parse(const char *path, int userdb);
 void db_passwd_file_unref(struct passwd_file *pw);
 
 #endif

Index: passdb-passwd-file.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/passdb-passwd-file.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- passdb-passwd-file.c	8 Apr 2003 16:59:52 -0000	1.7
+++ passdb-passwd-file.c	16 Apr 2003 13:38:17 -0000	1.8
@@ -73,7 +73,7 @@
 		passdb_pwf = userdb_pwf;
                 passdb_pwf->refcount++;
 	} else {
-		passdb_pwf = db_passwd_file_parse(args);
+		passdb_pwf = db_passwd_file_parse(args, FALSE);
 	}
 }
 

Index: userdb-passwd-file.c
===================================================================
RCS file: /home/cvs/dovecot/src/auth/userdb-passwd-file.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- userdb-passwd-file.c	18 Feb 2003 19:11:26 -0000	1.4
+++ userdb-passwd-file.c	16 Apr 2003 13:38:17 -0000	1.5
@@ -40,9 +40,13 @@
 {
 	if (passdb_pwf != NULL && strcmp(passdb_pwf->path, args) == 0) {
 		userdb_pwf = passdb_pwf;
-                userdb_pwf->refcount++;
+		userdb_pwf->refcount++;
+
+		/* resync */
+		userdb_pwf->userdb = FALSE;
+                userdb_pwf->stamp = 0;
 	} else {
-		userdb_pwf = db_passwd_file_parse(args);
+		userdb_pwf = db_passwd_file_parse(args, TRUE);
 	}
 }
 




More information about the dovecot-cvs mailing list