]> arthur.barton.de Git - netatalk.git/commitdiff
* change the database format from DB_HASH to DB_BTREE, should improve speed on large...
authorbfernhomberg <bfernhomberg>
Sat, 10 Jan 2004 06:25:18 +0000 (06:25 +0000)
committerbfernhomberg <bfernhomberg>
Sat, 10 Jan 2004 06:25:18 +0000 (06:25 +0000)
* add a check to compare the runtime BDB library version to the one we compiled with

libatalk/cnid/cdb/cnid_cdb_open.c
libatalk/cnid/db3/cnid_db3_open.c

index cbebd6f4b81db2cf65ecdd3ddd599f281ae68af9..00724baba2f883d934c29197aba1c2dd2b356211 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cnid_cdb_open.c,v 1.1.4.5 2003-12-16 23:06:32 lenneis Exp $
+ * $Id: cnid_cdb_open.c,v 1.1.4.6 2004-01-10 06:25:18 bfernhomberg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -141,6 +141,17 @@ static int my_open(DB * p, const char *f, const char *d, DBTYPE t, u_int32_t fla
 static struct _cnid_db *cnid_cdb_new(const char *volpath)
 {
     struct _cnid_db *cdb;
+    int major, minor, patch;
+    char *version_str;
+
+    version_str = db_version(&major, &minor, &patch);
+
+    /* check library match, ignore if only patch level changed */
+    if ( major != DB_VERSION_MAJOR || minor != DB_VERSION_MINOR)
+    {
+        LOG(log_error, logtype_cnid, "cnid_cdb_new: the Berkeley DB library version used does not match the version compiled with: (%u.%u)/(%u.%u)", DB_VERSION_MAJOR, DB_VERSION_MINOR, major, minor); 
+       return NULL;
+    }
 
     if ((cdb = (struct _cnid_db *) calloc(1, sizeof(struct _cnid_db))) == NULL)
         return NULL;
@@ -290,7 +301,7 @@ struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask)
         goto fail_appinit;
     }
 
-    if ((rc = my_open(db->db_cnid, DBCNID, DBCNID, DB_HASH, open_flag, 0666 & ~mask)) != 0) {
+    if ((rc = my_open(db->db_cnid, DBCNID, DBCNID, DB_BTREE, open_flag, 0666 & ~mask)) != 0) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open dev/ino database: %s",
             db_strerror(rc));
         goto fail_appinit;
@@ -305,7 +316,7 @@ struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask)
         goto fail_appinit;
     }
 
-    if ((rc = my_open(db->db_didname, DBCNID, DBDIDNAME,DB_HASH, open_flag, 0666 & ~mask))) {
+    if ((rc = my_open(db->db_didname, DBCNID, DBDIDNAME, DB_BTREE, open_flag, 0666 & ~mask))) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/name database: %s",
             db_strerror(rc));
         goto fail_appinit;
@@ -320,7 +331,7 @@ struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask)
         goto fail_appinit;
     }
 
-    if ((rc = my_open(db->db_devino, DBCNID, DBDEVINO, DB_HASH, open_flag, 0666 & ~mask)) != 0) {
+    if ((rc = my_open(db->db_devino, DBCNID, DBDEVINO, DB_BTREE, open_flag, 0666 & ~mask)) != 0) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open devino database: %s",
             db_strerror(rc));
         goto fail_appinit;
index 1d60987d3f66865dcba8e9ea327c0760415f0d23..c4aed39d152618de8955fce8d72e3a1ab51e98d0 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cnid_db3_open.c,v 1.1.4.2 2003-10-21 16:23:54 didg Exp $
+ * $Id: cnid_db3_open.c,v 1.1.4.3 2004-01-10 06:25:18 bfernhomberg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -377,7 +377,7 @@ struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask)
     }
 
     /*db->db_didname->set_bt_compare(db->db_didname, &compare_unix); */
-    if ((rc = my_open(db->db_didname, DBDIDNAME, NULL, DB_HASH, open_flag, 0666 & ~mask))) {
+    if ((rc = my_open(db->db_didname, DBDIDNAME, NULL, DB_BTREE, open_flag, 0666 & ~mask))) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/name database: %s", db_strerror(rc));
         goto fail_appinit;
     }
@@ -455,7 +455,7 @@ struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask)
         goto fail_appinit;
     }
 
-    if ((rc = my_open(db->db_devino, DBDEVINO, NULL, DB_HASH, open_flag, 0666 & ~mask))) {
+    if ((rc = my_open(db->db_devino, DBDEVINO, NULL, DB_BTREE, open_flag, 0666 & ~mask))) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open devino database: %s", db_strerror(rc));
         goto fail_appinit;
     }
@@ -466,7 +466,7 @@ struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask)
         goto fail_appinit;
     }
 
-    if ((rc = my_open(db->db_cnid, DBCNID, NULL, DB_HASH, open_flag, 0666 & ~mask))) {
+    if ((rc = my_open(db->db_cnid, DBCNID, NULL, DB_BTREE, open_flag, 0666 & ~mask))) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open dev/ino database: %s", db_strerror(rc));
         goto fail_appinit;
     }