]> arthur.barton.de Git - netatalk.git/commitdiff
Add DB 4.1.x support. This is a first round. Please test this if you are
authorjmarcus <jmarcus>
Sat, 4 Jan 2003 19:33:20 +0000 (19:33 +0000)
committerjmarcus <jmarcus>
Sat, 4 Jan 2003 19:33:20 +0000 (19:33 +0000)
using DB 4.1.x, and let me know if you have any problems.

libatalk/cnid/cnid_close.c
libatalk/cnid/cnid_lookup.c
libatalk/cnid/cnid_open.c

index f657ce05273607a5a7ba38d95551e7e5dcedb73b..41382315ab1be681ef1f059db2fcc40d5b6f56ca 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_close.c,v 1.26 2002-11-14 17:09:38 srittau Exp $
+ * $Id: cnid_close.c,v 1.27 2003-01-04 19:33:20 jmarcus Exp $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -46,17 +46,23 @@ void cnid_close(void *CNID) {
             /* Checkpoint the databases until we can checkpoint no
              * more. */
 #if DB_VERSION_MAJOR >= 4
+#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
+           db->dbenv->txn_checkpoint(db->dbenv, 0, 0, 0);
+#else
             rc = db->dbenv->txn_checkpoint(db->dbenv, 0, 0, 0);
+#endif /* DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1 */
 #else
             rc = txn_checkpoint(db->dbenv, 0, 0, 0);
-#endif
+#endif /* DB_VERSION_MAJOR >= 4 */
+#if DB_VERSION_MAJOR < 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR < 1)
             while (rc == DB_INCOMPLETE) {
 #if DB_VERSION_MAJOR >= 4
                    rc = db->dbenv->txn_checkpoint(db->dbenv, 0, 0, 0);
 #else
                    rc = txn_checkpoint(db->dbenv, 0, 0, 0);
-#endif
+#endif /* DB_VERSION_MAJOR >= 4 */
             }
+#endif /* DB_VERSION_MAJOR < 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR < 1) */
 
 #if DB_VERSION_MAJOR >= 4
             if ((rc = db->dbenv->log_archive(db->dbenv, &list, DB_ARCH_ABS)) != 0) {
index 7a6e3adc397f6c2b36c13a4a4245bedad6fc199f..145233b7011c7ae8d6c06b556ba7ebe47f490db5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_lookup.c,v 1.14 2002-08-30 03:12:52 jmarcus Exp $
+ * $Id: cnid_lookup.c,v 1.15 2003-01-04 19:33:20 jmarcus Exp $
  */
 
 #ifdef HAVE_CONFIG_H
@@ -48,11 +48,14 @@ cnid_t cnid_lookup(void *CNID, const struct stat *st, const cnid_t did,
 #ifdef DEBUG
         LOG(log_info, logtype_default, "cnid_lookup: Running database checkpoint");
 #endif
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+       db->dbenv->txn_checkpoint(db->dbenv, LOGFILEMAX, CHECKTIMEMAX, 0)
+#else
 #if DB_VERSION_MAJOR >= 4
         switch (rc = db->dbenv->txn_checkpoint(db->dbenv, LOGFILEMAX, CHECKTIMEMAX, 0)) {
 #else
         switch (rc = txn_checkpoint(db->dbenv, LOGFILEMAX, CHECKTIMEMAX, 0)) {
-#endif
+#endif /* DB_VERSION_MAJOR >= 4 */
         case 0:
         case DB_INCOMPLETE:
             break;
@@ -62,6 +65,7 @@ cnid_t cnid_lookup(void *CNID, const struct stat *st, const cnid_t did,
             return 0;
         }
     }
+#endif /* DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) */
 #endif /* CNID_DB_CDB */
 
     if ((buf = make_cnid_data(st, did, name, len)) == NULL) {
index 9bd6a8d69fb3282b50d47b0d2b5877d4ef4dfe2c..f90deb1f016de73daf52f2723aaaf80dfba0f846 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_open.c,v 1.44 2002-11-14 17:09:38 srittau Exp $
+ * $Id: cnid_open.c,v 1.45 2003-01-04 19:33:20 jmarcus Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -328,8 +328,13 @@ void *cnid_open(const char *dir, mode_t mask) {
     }
 
     /*db->db_didname->set_bt_compare(db->db_didname, &compare_unix);*/
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_didname->open(db->db_didname, NULL, DBDIDNAME, NULL,
+                                  DB_HASH, open_flag DB_AUTO_COMMIT, 0666 & ~mask))) {
+#else
     if ((rc = db->db_didname->open(db->db_didname, DBDIDNAME, NULL,
                                    DB_HASH, open_flag, 0666 & ~mask))) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/name database: %s",
             db_strerror(rc));
         goto fail_appinit;
@@ -443,7 +448,11 @@ dbversion_retry:
     }
 
     db->db_macname->set_bt_compare(db->db_macname, &compare_mac);
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_macname->open(db->db_macname, NULL, DBMACNAME, NULL, DB_BTREE, open_flag | DB_AUTO_COMMIT, 0666 & ~mask)) != 0) {
+#else
     if ((rc = db->db_macname->open(db->db_macname, DBMACNAME, NULL, DB_BTREE, open_flag, 0666 & ~mask)) != 0) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/macname database: %s",
             db_strerror(rc));
         db->db_didname->close(db->db_didname, 0);
@@ -460,7 +469,11 @@ dbversion_retry:
     }
 
     db->db_shortname->set_bt_compare(db->db_shortname, &compare_mac);
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_shortname->open(db->db_shortname, NULL, DBSHORTNAME, NULL, DB_BTREE, open_flag | DB_AUTO_COMMIT, 0666 & ~mask)) != 0) {
+#else
     if ((rc = db->db_shortname->open(db->db_shortname, DBSHORTNAME, NULL, DB_BTREE, open_flag, 0666 & ~mask)) != 0) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/shortname database: %s",
             db_strerror(rc));
         db->db_didname->close(db->db_didname, 0);
@@ -479,7 +492,11 @@ dbversion_retry:
     }
 
     db->db_longname->set_bt_compare(db->db_longname, &compare_unicode);
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_longname->open(db->db_longname, NULL, DBLONGNAME, NULL, DB_BTREE, open_flag | DB_AUTO_COMMIT, 0666 & ~mask)) != 0) {
+#else
     if ((rc = db->db_longname->open(db->db_longname, DBLONGNAME, NULL, DB_BTREE, open_flag, 0666 & ~mask)) != 0) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/longname database: %s",
             db_strerror(rc));
         db->db_didname->close(db->db_didname, 0);
@@ -502,7 +519,11 @@ dbversion_retry:
         goto fail_appinit;
     }
 
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_devino->open(db->db_devino, NULL, DBDEVINO, NULL, DB_HASH, open_flag | DB_AUTO_COMMIT, 0666 & ~mask)) != 0) {
+#else
     if ((rc = db->db_devino->open(db->db_devino, DBDEVINO, NULL, DB_HASH, open_flag, 0666 & ~mask)) != 0) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open devino database: %s",
             db_strerror(rc));
         db->db_didname->close(db->db_didname, 0);
@@ -529,7 +550,11 @@ dbversion_retry:
     }
 
 
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_cnid->open(db->db_cnid, NULL, DBCNID, NULL, DB_HASH, open_flag | DB_AUTO_COMMIT, 0666 & ~mask)) != 0) {
+#else
     if ((rc = db->db_cnid->open(db->db_cnid, DBCNID, NULL, DB_HASH, open_flag, 0666 & ~mask)) != 0) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open dev/ino database: %s",
             db_strerror(rc));
         db->db_didname->close(db->db_didname, 0);
@@ -557,7 +582,11 @@ dbversion_retry:
         goto fail_appinit;
     }
 
+#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)
+    if ((rc = db->db_mangle->open(db->db_mangle, NULL, DBMANGLE, NULL, DB_HASH, open_flag | DB_AUTO_COMMIT, 0666 & ~mask)) != 0) {
+#else
     if ((rc = db->db_mangle->open(db->db_mangle, DBMANGLE, NULL, DB_HASH, open_flag, 0666 & ~mask)) != 0) {
+#endif /* DB_VERSION_MAJOR >= 4 */
         LOG(log_error, logtype_default, "cnid_open: Failed to open mangle database: %s", db_strerror(rc));
         db->db_didname->close(db->db_didname, 0);
         db->db_devino->close(db->db_devino, 0);