Applied Alex Kiernan's patch for the API change in BDB 4.3.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 14 Jun 2005 10:32:01 +0000 (10:32 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Tue, 14 Jun 2005 10:32:01 +0000 (10:32 +0000)
doc/doc-txt/ChangeLog
src/ACKNOWLEDGMENTS
src/src/dbfn.c
src/src/dbfunctions.h
src/src/exim_dbmbuild.c
src/src/exim_dbutil.c

index 1a6cbe432e99662afd308703007f35c49976c665..998cf94e9cd0637012f56148c43a42aefb92af17 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.153 2005/06/13 13:37:39 fanf2 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.154 2005/06/14 10:32:01 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -111,6 +111,9 @@ TK/08 Apply fix provided by Michael Haardt to prevent deadlock in case of
 TF/05 Fixed a ${extract error message typo reported by Jeremy Harris
       <jgh@wizmail.org>
 
+PH/12 Applied Alex Kiernan's patch for the API change for the error callback
+      function for BDB 4.3.
+
 
 Exim version 4.51
 -----------------
index 6100eef05812cf5a460d2c8dd607c0211e60beb6..3e1e09b293491a0ffc1428cfd7d73307d30eb5b0 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.25 2005/06/06 19:30:18 tom Exp $
+$Cambridge: exim/src/ACKNOWLEDGMENTS,v 1.26 2005/06/14 10:32:01 ph10 Exp $
 
 EXIM ACKNOWLEDGEMENTS
 
@@ -20,7 +20,7 @@ relatively small patches.
 Philip Hazel
 
 Lists created: 20 November 2002
-Last updated:  27 April 2005
+Last updated:  14 June 2005
 
 
 THE OLD LIST
@@ -160,6 +160,7 @@ Bob Johannessen           Patch for Sieve envelope tests bug
 Christian Kellner         Patch for LDAP dereferencing
 Alex Kiernan              Patch for libradius
                           Diagnosis of milliwait clock-backwards bug
+                          Patch for BDB 4.3 API change
 Tom Kistner               SPA server code
                           Writing and maintaining the content scanning
                             extension (exiscan)
index f511df5e1587f6cd154b9307068c33989ee9dda3..928cf00f1c94becf68f07b006dd3da3ef09a75a2 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/dbfn.c,v 1.2 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/src/src/dbfn.c,v 1.3 2005/06/14 10:32:01 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -40,12 +40,19 @@ arrange to hold the locks for the bare minimum of time. */
 
 /* For Berkeley DB >= 2, we can define a function to be called in case of DB
 errors. This should help with debugging strange DB problems, e.g. getting "File
-exists" when you try to open a db file. */
+exists" when you try to open a db file. The API for this function was changed
+at DB release 4.3. */
 
 #if defined(USE_DB) && defined(DB_VERSION_STRING)
 void
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)
+dbfn_bdb_error_callback(const DB_ENV *dbenv, const char *pfx, const char *msg)
+{
+dbenv = dbenv;
+#else
 dbfn_bdb_error_callback(const char *pfx, char *msg)
 {
+#endif
 pfx = pfx;
 log_write(0, LOG_MAIN, "Berkeley DB error: %s", msg);
 }
index 74c7e612759148b9e39b567b811b21824b28d978..6d2d01555791c7762866570476c303e3980e5317 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/dbfunctions.h,v 1.2 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/src/src/dbfunctions.h,v 1.3 2005/06/14 10:32:01 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -21,10 +21,15 @@ int      dbfn_write(open_db *, uschar *, void *, int);
 
 #define  dbfn_read(a, b) dbfn_read_with_length(a, b, NULL)
 
-/* Berkeley DB uses a callback function to pass back error details. */
+/* Berkeley DB uses a callback function to pass back error details. Its API
+changed at release 4.3. */
 
 #if defined(USE_DB) && defined(DB_VERSION_STRING)
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)
+void     dbfn_bdb_error_callback(const DB_ENV *, const char *, const char *);
+#else
 void     dbfn_bdb_error_callback(const char *, char *);
 #endif
+#endif
 
 /* End of dbfunctions.h */
index 1c06b710a949286a36e5617f5204766db40eb1ef..2d4bc3b6ab189be4a722678c8f9752947a902683 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim_dbmbuild.c,v 1.2 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/src/src/exim_dbmbuild.c,v 1.3 2005/06/14 10:32:01 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -58,12 +58,18 @@ return sys_errlist[n];
 
 /* For Berkeley DB >= 2, we can define a function to be called in case of DB
 errors. This should help with debugging strange DB problems, e.g. getting "File
-exists" when you try to open a db file. */
+exists" when you try to open a db file. The API changed at release 4.3. */
 
 #if defined(USE_DB) && defined(DB_VERSION_STRING)
 void
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)
+dbfn_bdb_error_callback(const DB_ENV *dbenv, const char *pfx, const char *msg)
+{
+dbenv = dbenv;
+#else
 dbfn_bdb_error_callback(const char *pfx, char *msg)
 {
+#endif
 pfx = pfx;
 printf("Berkeley DB error: %s\n", msg);
 }
index a8dbe61b804b81e8200b3fba8c51d4640bf21272..03c00a411a70eba2fbeb2605eb1df1befbc80896 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/exim_dbutil.c,v 1.4 2005/05/23 16:58:56 fanf2 Exp $ */
+/* $Cambridge: exim/src/src/exim_dbutil.c,v 1.5 2005/06/14 10:32:01 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -78,12 +78,18 @@ not too much extra baggage. */
 
 /* For Berkeley DB >= 2, we can define a function to be called in case of DB
 errors. This should help with debugging strange DB problems, e.g. getting "File
-exists" when you try to open a db file. */
+exists" when you try to open a db file. The API changed at release 4.3. */
 
 #if defined(USE_DB) && defined(DB_VERSION_STRING)
 void
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)
+dbfn_bdb_error_callback(const DB_ENV *dbenv, const char *pfx, const char *msg)
+{
+dbenv = dbenv;
+#else
 dbfn_bdb_error_callback(const char *pfx, char *msg)
 {
+#endif
 pfx = pfx;
 printf("Berkeley DB error: %s\n", msg);
 }