Tomas Janousek fdec0eb
--- cyrus-imapd-2.3.7/cmulocal/berkdb.m4.db4.5	2006-05-23 15:27:15.000000000 +0200
Tomas Janousek fdec0eb
+++ cyrus-imapd-2.3.7/cmulocal/berkdb.m4	2007-01-08 11:57:05.000000000 +0100
Tomas Janousek fdec0eb
@@ -213,7 +213,7 @@
Tomas Janousek fdec0eb
 	fi
Tomas Janousek fdec0eb
 
Tomas Janousek fdec0eb
 	saved_LIBS=$LIBS
Tomas Janousek fdec0eb
-        for dbname in db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
Tomas Janousek fdec0eb
+        for dbname in db-4.5 db4.5 db45 db-4.4 db4.4 db44 db-4.3 db4.3 db43 db-4.2 db4.2 db42 db-4.1 db4.1 db41 db-4.0 db4.0 db-4 db40 db4 db-3.3 db3.3 db33 db-3.2 db3.2 db32 db-3.1 db3.1 db31 db-3 db30 db3 db
Tomas Janousek fdec0eb
           do
Tomas Janousek fdec0eb
 	    LIBS="$saved_LIBS -l$dbname"
Tomas Janousek fdec0eb
 	    AC_TRY_LINK([#include <db.h>],
Tomas Janousek fdec0eb
--- cyrus-imapd-2.3.7/lib/cyrusdb_berkeley.c.db4.5	2006-02-28 13:58:07.000000000 +0100
Tomas Janousek fdec0eb
+++ cyrus-imapd-2.3.7/lib/cyrusdb_berkeley.c	2007-01-08 12:00:29.000000000 +0100
Tomas Janousek fdec0eb
@@ -173,7 +173,15 @@
Tomas Janousek fdec0eb
 	syslog(LOG_WARNING,
Tomas Janousek fdec0eb
 	       "DBERROR: invalid berkeley_locks_max value, using internal default");
Tomas Janousek fdec0eb
     } else {
Tomas Janousek fdec0eb
+#if DB_VERSION_MAJOR >= 4
Tomas Janousek fdec0eb
+	r = dbenv->set_lk_max_locks(dbenv, opt);
Tomas Janousek fdec0eb
+	if (!r)
Tomas Janousek fdec0eb
+	    r = dbenv->set_lk_max_lockers(dbenv, opt);
Tomas Janousek fdec0eb
+	if (!r)
Tomas Janousek fdec0eb
+	    r = dbenv->set_lk_max_objects(dbenv, opt);
Tomas Janousek fdec0eb
+#else
Tomas Janousek fdec0eb
 	r = dbenv->set_lk_max(dbenv, opt);
Tomas Janousek fdec0eb
+#endif
Tomas Janousek fdec0eb
 	if (r) {
Tomas Janousek fdec0eb
 	    dbenv->err(dbenv, r, "set_lk_max");
Tomas Janousek fdec0eb
 	    syslog(LOG_ERR, "DBERROR: set_lk_max(): %s", db_strerror(r));