diff -ruN courier-authlib-0.59.1.orig/authuserdb.c courier-authlib-0.59.1/authuserdb.c --- courier-authlib-0.59.1.orig/authuserdb.c 2006-10-29 05:22:52 +1000 +++ courier-authlib-0.59.1/authuserdb.c 2007-01-28 00:49:47 +1000 @@ -82,14 +82,14 @@ return (-1); userdb_set_debug(courier_authdebug_login_level); - userdb_init(USERDB ".dat"); + userdb_init(USERDB ".db"); if ( (u=userdb(cci.user)) == 0) { userdb_close(); return (-1); } - if ( (udbs=userdbshadow(USERDB "shadow.dat", cci.user)) == 0) + if ( (udbs=userdbshadow(USERDB "shadow.db", cci.user)) == 0) { free(u); userdb_close(); diff -ruN courier-authlib-0.59.1.orig/authuserdbpwd.c courier-authlib-0.59.1/authuserdbpwd.c --- courier-authlib-0.59.1.orig/authuserdbpwd.c 2006-10-29 05:22:52 +1000 +++ courier-authlib-0.59.1/authuserdbpwd.c 2007-01-28 00:49:47 +1000 @@ -254,7 +254,7 @@ struct userdbs *udb; - udbs=userdbshadow(USERDB "shadow.dat", uid); + udbs=userdbshadow(USERDB "shadow.db", uid); if (!udbs) { @@ -305,7 +305,7 @@ free(passwords); free(udbs); - userdb_init(USERDB ".dat"); + userdb_init(USERDB ".db"); if ( (u=userdb(uid)) == 0 || (udb=userdb_creates(u)) == 0) { diff -ruN courier-authlib-0.59.1.orig/preauthuserdbcommon.c courier-authlib-0.59.1/preauthuserdbcommon.c --- courier-authlib-0.59.1.orig/preauthuserdbcommon.c 2006-10-29 05:22:52 +1000 +++ courier-authlib-0.59.1/preauthuserdbcommon.c 2007-01-28 00:49:47 +1000 @@ -35,7 +35,7 @@ int rc; userdb_set_debug(courier_authdebug_login_level); - userdb_init(USERDB ".dat"); + userdb_init(USERDB ".db"); /* We rely on DPRINTF doing 'safe' printing */ DPRINTF("userdb: looking up '%s'", userid); if ( (u=userdb(userid)) == 0) @@ -63,7 +63,7 @@ if (needpass) { - udbs=userdbshadow(USERDB "shadow.dat", userid); + udbs=userdbshadow(USERDB "shadow.db", userid); if (udbs) { @@ -129,7 +129,7 @@ { struct userdbs *u; - userdb_init(USERDB ".dat"); + userdb_init(USERDB ".db"); for (u=userdb_enum_first(); u; u=userdb_enum_next()) { diff -ruN courier-authlib-0.59.1.orig/README.authdebug.html.in courier-authlib-0.59.1/README.authdebug.html.in --- courier-authlib-0.59.1.orig/README.authdebug.html.in 2004-11-26 01:07:02 +1000 +++ courier-authlib-0.59.1/README.authdebug.html.in 2007-01-28 00:49:47 +1000 @@ -147,7 +147,7 @@ Apr 14 14:07:15 billdog authdaemond: cram: only supports authtype=cram-* Apr 14 14:07:15 billdog authdaemond: authcram: REJECT - try next module Apr 14 14:07:15 billdog authdaemond: authuserdb: trying this module -Apr 14 14:07:15 billdog authdaemond: userdb: opened /etc/userdb.dat +Apr 14 14:07:15 billdog authdaemond: userdb: opened /etc/courier-imap/userdb.db Apr 14 14:07:15 billdog authdaemond: userdb: looking up 'brian' Apr 14 14:07:15 billdog authdaemond: userdb: entry not found Apr 14 14:07:15 billdog authdaemond: authuserdb: REJECT - try next module @@ -165,8 +165,8 @@
  • It tried 'authcram', but since this was a request with authtype=login (rather than authtype=cram-md5, say), this module cannot handle it so it REJECTs
  • -
  • 'authuserdb' has a go. In this case there is an /etc/userdb.dat file - for it to look in, but the requested username 'brian' does not exist in +
  • 'authuserdb' has a go. In this case there is an /etc/courier-imap/userdb.db + file for it to look in, but the requested username 'brian' does not exist in there, so it REJECTs
  • 'authpam' has a go. It finds the username and home directory in /etc/passwd, and then calls the PAM subsystem to authenticate. The diff -ruN courier-authlib-0.59.1.orig/README_authlib.html.in courier-authlib-0.59.1/README_authlib.html.in --- courier-authlib-0.59.1.orig/README_authlib.html.in 2006-12-31 03:11:36 +1000 +++ courier-authlib-0.59.1/README_authlib.html.in 2007-01-28 00:49:47 +1000 @@ -1246,11 +1246,11 @@ >

    This command creates the actual database, @userdb@.dat@userdb@.db and @userdb@shadow.dat@userdb@shadow.db from the plain text file

    Courier reads @userdb@.dat@userdb@.db and @userdb@shadow.dat@userdb@shadow.db only. The plain text source, makeuserdb creates @userdb@.dat@userdb@.db from the contents of , and other applications use @userdb@.dat@userdb@.db as a substitute/complement for your system password file. The usual purpose for @userdb@.dat@userdb@.db is to specify "virtual" accounts - accounts that do not have an associated system login. @@ -117,14 +117,14 @@ system userid. @userdb@.dat@userdb@.db may also replace your system password file. Because the system password file is a text file, when there's a large number of accounts it will be significantly faster to search @userdb.dat@@userdb@.db, which is a binary database, instead of a flat text file that the system password file usually is.

    @userdb@.dat@userdb@.db.

    @userdb@shadow.dat@userdb@shadow.db

    All fields whose name ends with 'pw' will NOT copied to @userdb@.dat@userdb@.db. These fields will be copied to @userdb@shadow.dat@userdb@shadow.db. makeuserdb creates @userdb@shadow.dat@userdb@shadow.db without any group and world permissions. Note that to create @userdb@.dat@userdb@.db.

    , of course, to create the binary database file @userdb@.dat@userdb@.db

    NOTE: You are still required to create the
    @userdb@.dat@userdb@.db
    @userdb@shadow.dat@userdb@shadow.db

    REBUILDING @userdb@.dat@userdb@.db

    The actual virtual account/address database is @userdb@.dat@userdb@.db. This is a binary database file. command to rebuild @userdb@.dat@userdb@.db for the changes to take effect.

    userdbshadow.datuserdbshadow.db database, which has group and world permissions turned off. The userdb library also requires that the cleartext userdb source for the userdb.datuserdb.db and userdbshadow.datuserdbshadow.db databases is also stored with the group and world permissions turned off.