]> arthur.barton.de Git - netatalk.git/blobdiff - libatalk/cnid/cnid_open.c
Change didname database to a hash instead of btree. Since we're using a
[netatalk.git] / libatalk / cnid / cnid_open.c
index be6fe6f8f24c74b32ad49d7c784f8ecdf84ff8a3..7b7d065c6bf6c1aece299d3ab45c2bf6f49396bc 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_open.c,v 1.31 2002-01-17 16:19:07 jmarcus Exp $
+ * $Id: cnid_open.c,v 1.34 2002-01-21 04:48:14 jmarcus Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -30,7 +30,8 @@
  * 1 -- parent of root directory (handled by afpd) 
  * 2 -- root directory (handled by afpd)
  *
- * so, CNID_START begins at 3.
+ * CNIDs 4-16 are reserved according to page 31 of the AFP 3.0 spec so, 
+ * CNID_START begins at 17.
  */
 
 #ifdef HAVE_CONFIG_H
 #define DBOPTIONS    (DB_CREATE | DB_INIT_MPOOL | DB_INIT_LOCK | \
 DB_INIT_LOG | DB_INIT_TXN)
 #else /* DB_VERSION_MINOR < 1 */
-#define DBOPTIONS    (DB_CREATE | DB_INIT_MPOOL | DB_INIT_LOCK | \
-DB_INIT_LOG | DB_INIT_TXN | DB_TXN_NOSYNC)
 /*#define DBOPTIONS    (DB_CREATE | DB_INIT_MPOOL | DB_INIT_LOCK | \
-DB_INIT_LOG | DB_INIT_TXN)*/
+DB_INIT_LOG | DB_INIT_TXN | DB_TXN_NOSYNC)*/
+#define DBOPTIONS    (DB_CREATE | DB_INIT_MPOOL | DB_INIT_LOCK | \
+DB_INIT_LOG | DB_INIT_TXN)
 #endif /* DB_VERSION_MINOR */
 
 /* Let's try and use the youngest lock detector if present.
@@ -310,11 +311,13 @@ void *cnid_open(const char *dir) {
     }
 
 #if DB_VERSION_MINOR > 1
+#if 0
     /* Take care of setting the DB_TXN_NOSYNC flag in db3 > 3.1.x. */
     if ((rc = db->dbenv->set_flags(db->dbenv, DB_TXN_NOSYNC, 1)) != 0) {
         LOG(log_error, logtype_default, "cnid_open: set_flags: %s", db_strerror(rc));
         goto fail_lock;
     }
+#endif
 #endif /* DB_VERSION_MINOR > 1 */
 
     /* Open the database environment. */
@@ -365,9 +368,9 @@ void *cnid_open(const char *dir) {
         goto fail_appinit;
     }
 
-    db->db_didname->set_bt_compare(db->db_didname, &compare_unix);
+    /*db->db_didname->set_bt_compare(db->db_didname, &compare_unix);*/
     if ((rc = db->db_didname->open(db->db_didname, DBDIDNAME, NULL,
-                                   DB_BTREE, open_flag, 0666))) {
+                                   DB_HASH, open_flag, 0666))) {
         LOG(log_error, logtype_default, "cnid_open: Failed to open did/name database: %s",
             db_strerror(rc));
         goto fail_appinit;