API calls removed from db4.2

Julien ÉLIE julien at trigofacile.com
Mon May 5 09:58:28 UTC 2008


http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/inn-db4.patch

It fixes API calls removed from db4.2.


Do you think it should be committed?
It might perhaps break old Berkeley DB versions (< 4.2?).
But if such API calls were removed from db4.2, why does it still compile fine
with current Berkeley DB versions?


--- storage/ovdb/ovdb-private.h.orig 2003-05-09 04:25:27.000000000 +0000
+++ storage/ovdb/ovdb-private.h 2003-12-04 18:03:59.000000000 +0000
@@ -173,7 +173,7 @@
 #define TXN_START(label, tid) \
 label: { \
   int txn_ret; \
-  txn_ret = txn_begin(OVDBenv->tx_info, NULL, &tid); \
+  txn_ret = OVDBenv->tx_info->txn_begin(OVDBenv->tx_info, NULL, &tid); \
   if (txn_ret != 0) { \
     syslog(L_ERROR, "OVDB: " #label " txn_begin: %s", db_strerror(ret)); \
     tid = NULL; \
@@ -181,10 +181,10 @@
 }
 
 #define TXN_RETRY(label, tid) \
-{ txn_abort(tid); goto label; }
+{ tid->abort(tid); goto label; }
 
-#define TXN_ABORT(label, tid) txn_abort(tid)
-#define TXN_COMMIT(label, tid) txn_commit(tid)
+#define TXN_ABORT(label, tid) tid->abort(tid)
+#define TXN_COMMIT(label, tid) tid->commit(tid)
 
 #define TRYAGAIN EAGAIN
 
@@ -194,7 +194,7 @@
 #define TXN_START(label, tid) \
 label: { \
   int txn_ret; \
-  txn_ret = txn_begin(OVDBenv, NULL, &tid, 0); \
+  txn_ret = OVDBenv->txn_begin(OVDBenv, NULL, &tid, 0); \
   if (txn_ret != 0) { \
     syslog(L_ERROR, "OVDB: " #label " txn_begin: %s", db_strerror(ret)); \
     tid = NULL; \
@@ -202,10 +202,10 @@
 }
 
 #define TXN_RETRY(label, tid) \
-{ txn_abort(tid); goto label; }
+{ tid->abort(tid); goto label; }
 
-#define TXN_ABORT(label, tid) txn_abort(tid)
-#define TXN_COMMIT(label, tid) txn_commit(tid, 0)
+#define TXN_ABORT(label, tid) tid->abort(tid)
+#define TXN_COMMIT(label, tid) tid->commit(tid, 0)
 
 #define TRYAGAIN DB_LOCK_DEADLOCK



More information about the inn-workers mailing list