]> arthur.barton.de Git - netatalk.git/commitdiff
add a flag parameter to cnid open functions
authordidg <didg>
Tue, 24 Nov 2009 12:18:19 +0000 (12:18 +0000)
committerdidg <didg>
Tue, 24 Nov 2009 12:18:19 +0000 (12:18 +0000)
15 files changed:
include/atalk/cnid.h
libatalk/cnid/cdb/cnid_cdb.h
libatalk/cnid/cdb/cnid_cdb_open.c
libatalk/cnid/cnid.c
libatalk/cnid/db3/cnid_db3.h
libatalk/cnid/db3/cnid_db3_open.c
libatalk/cnid/dbd/cnid_dbd.c
libatalk/cnid/dbd/cnid_dbd.h
libatalk/cnid/hash/cnid_hash.h
libatalk/cnid/hash/cnid_hash_open.c
libatalk/cnid/last/cnid_last.c
libatalk/cnid/last/cnid_last.h
libatalk/cnid/mtab/cnid_mtab.c
libatalk/cnid/tdb/cnid_tdb.h
libatalk/cnid/tdb/cnid_tdb_open.c

index e64a677aa66b72637dd379f36762914ae18e095e..ee21c346962da9047f0ea62f83ad7af465ec4f44 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * $Id: cnid.h,v 1.12 2005-09-07 15:23:21 didg Exp $
+ * $Id: cnid.h,v 1.13 2009-11-24 12:18:19 didg Exp $
  *
  * Copyright (c) 2003 the Netatalk Team
  * Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
@@ -33,6 +33,8 @@
 #define CNID_FLAG_BLOCK        0x08      /* block signals in update. */
 #define CNID_FLAG_NODEV        0x10      /* don't use device number only inode */
 #define CNID_FLAG_LAZY_INIT    0x20      /* */
+#define CNID_FLAG_MEMORY       0x40     /* this is a memory only db */
+#define CNID_FLAG_INODE        0x80     /* in cnid_add the inode is authoritative */
 
 #define CNID_INVALID   0
 
@@ -74,7 +76,7 @@ typedef struct _cnid_db cnid_db;
 struct _cnid_module {
        char *name;
        struct list_head db_list;   /* CNID modules are also stored on a bidirectional list. */
-       struct _cnid_db *(*cnid_open)(const char *dir, mode_t mask);
+       struct _cnid_db *(*cnid_open)(const char *dir, mode_t mask, u_int32_t flags);
        u_int32_t flags;            /* Flags describing some CNID backend aspects. */
 
 };
@@ -117,7 +119,10 @@ void cnid_close(struct _cnid_db *db);
 
 /*
  * $Log: cnid.h,v $
- * Revision 1.12  2005-09-07 15:23:21  didg
+ * Revision 1.13  2009-11-24 12:18:19  didg
+ * add a flag parameter to cnid open functions
+ *
+ * Revision 1.12  2005/09/07 15:23:21  didg
  *
  * lazy init dbd database, help with pre tiger OS and a lot of volumes.
  *
index 311fba0d15e89f183f8d9e295494d9e4996a3600..25c2d32bcd5c032250e97cb15b6569e6b0bc3069 100644 (file)
@@ -16,7 +16,7 @@
 
 /* cnid_open.c */
 extern struct _cnid_module cnid_cdb_module;
-extern struct _cnid_db *cnid_cdb_open (const char *, mode_t);
+extern struct _cnid_db *cnid_cdb_open (const char *, mode_t, u_int32_t flags);
 
 /* cnid_close.c */
 extern void cnid_cdb_close (struct _cnid_db *);
index 0a00ec5997334fd6991879dc60333b3199018379..90e16d8ea22a84932d662e1f34179082c48b9089 100644 (file)
@@ -1,6 +1,5 @@
-
 /*
- * $Id: cnid_cdb_open.c,v 1.3 2009-10-13 22:55:37 didg Exp $
+ * $Id: cnid_cdb_open.c,v 1.4 2009-11-24 12:18:19 didg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -202,7 +201,7 @@ static int upgrade_required(char *dbdir)
 }
 
 /* --------------- */
-struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask)
+struct _cnid_db *cnid_cdb_open(const char *dir, mode_t mask, u_int32_t flags _U_)
 {
     struct stat st;
     char path[MAXPATHLEN + 1];
index 58aa780c452623ea9487db8902de620b86dab3de..5476e2c3fee66419362e6893001d90edbfa2b586 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * $Id: cnid.c,v 1.8 2009-11-24 11:40:11 didg Exp $
+ * $Id: cnid.c,v 1.9 2009-11-24 12:18:19 didg Exp $
  *
  * Copyright (c) 2003 the Netatalk Team
  * Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
@@ -128,7 +128,7 @@ struct _cnid_db *cnid_open(const char *volpath, mode_t mask, char *type, int fla
         }
     }
 
-    db = mod->cnid_open(volpath, mask);
+    db = mod->cnid_open(volpath, mask, flags);
 
     if ((mod->flags & CNID_FLAG_SETUID)) {
         seteuid(0);
index 2b0a0516d9e6ffb6b1ba904e87bc3a613975fbb2..59840a37cfc0dfbade22dd3668a8731d660a5416 100644 (file)
@@ -53,7 +53,7 @@ static int db3_txn_commit(DB_TXN *db_txn, u_int32_t flags)
    cnid_open.c 
 */
 extern struct _cnid_module cnid_db3_module;
-extern struct _cnid_db *cnid_db3_open (const char *, mode_t);
+extern struct _cnid_db *cnid_db3_open (const char *, mode_t, u_int32_t flags);
 
 /* cnid_close.c */
 extern void cnid_db3_close (struct _cnid_db *);
index c63543492dde4fc871b6f577ba382188a123c1fe..92798b78f69d39be089c275dc64cfb6a3e05c06a 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cnid_db3_open.c,v 1.4 2008-12-03 18:35:44 didg Exp $
+ * $Id: cnid_db3_open.c,v 1.5 2009-11-24 12:18:19 didg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -247,7 +247,7 @@ static struct _cnid_db *cnid_db3_new(const char *volpath)
     return cdb;
 }
 
-struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask)
+struct _cnid_db *cnid_db3_open(const char *dir, mode_t mask, u_int32_t flags _U_)
 {
     struct stat st;
     struct flock lock;
index faa16fcbda100550f5125e5d8a6184fa3f37cad7..2a34c8d3eda546927b2b6180d4532eb811f1a87e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_dbd.c,v 1.13 2009-11-16 01:03:18 didg Exp $
+ * $Id: cnid_dbd.c,v 1.14 2009-11-24 12:18:19 didg Exp $
  *
  * Copyright (C) Joerg Lenneis 2003
  * All Rights Reserved.  See COPYING.
@@ -442,7 +442,7 @@ static struct _cnid_db *cnid_dbd_new(const char *volpath)
 }
 
 /* ---------------------- */
-struct _cnid_db *cnid_dbd_open(const char *dir, mode_t mask _U_)
+struct _cnid_db *cnid_dbd_open(const char *dir, mode_t mask _U_, u_int32_t flags _U_)
 {
     CNID_private *db = NULL;
     struct _cnid_db *cdb = NULL;
index fed486ebfec9b08f0a01526222277ed87b1795b3..20a737c9b95b29375f92540270c821f31468843e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_dbd.h,v 1.4 2009-10-13 22:55:37 didg Exp $
+ * $Id: cnid_dbd.h,v 1.5 2009-11-24 12:18:19 didg Exp $
  *
  * Copyright (C) Joerg Lenneis 2003
  * All Rights Reserved.  See COPYING.
@@ -18,7 +18,7 @@
 #include <atalk/cnid.h>
 
 extern struct _cnid_module cnid_dbd_module;
-extern struct _cnid_db *cnid_dbd_open (const char *, mode_t);
+extern struct _cnid_db *cnid_dbd_open (const char *, mode_t, u_int32_t flags);
 extern void cnid_dbd_close (struct _cnid_db *);
 extern cnid_t cnid_dbd_add (struct _cnid_db *, const struct stat *, const cnid_t,
                            char *, const size_t, cnid_t);
index a3f8e4b87c04fbfe6b0afffe9222f765f974b352..a8592ffd6d54ddd00dba05347dbedfacf3c0bf94 100644 (file)
@@ -40,7 +40,7 @@ struct _cnid_hash_private {
 
 /* cnid_open.c */
 extern struct _cnid_module cnid_hash_module;
-extern struct _cnid_db *cnid_hash_open (const char *, mode_t);
+extern struct _cnid_db *cnid_hash_open (const char *, mode_t, u_int32_t flags);
 
 /* cnid_close.c */
 extern void cnid_hash_close (struct _cnid_db *);
index 8a0d51cf1dc6dbce390c887777b62eb61fcba906..11ce7e4e3bb98c37acdaa8bd67c725371c7392eb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_hash_open.c,v 1.2 2005-04-28 20:50:01 bfernhomberg Exp $
+ * $Id: cnid_hash_open.c,v 1.3 2009-11-24 12:18:20 didg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -58,7 +58,7 @@ static struct _cnid_db *cnid_hash_new(const char *volpath)
 }
 
 /* ---------------------------- */
-struct _cnid_db *cnid_hash_open(const char *dir, mode_t mask)
+struct _cnid_db *cnid_hash_open(const char *dir, mode_t mask, u_int32_t flags _U_)
 {
     struct stat               st;
     struct _cnid_db           *cdb;
index 6f0f68ea6591479645a254714b3fa241df1173d0..7c5c941f2aba24e533360ef6b1f801328ea4e4e1 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cnid_last.c,v 1.3 2005-05-03 14:55:14 didg Exp $
+ * $Id: cnid_last.c,v 1.4 2009-11-24 12:18:20 didg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -144,7 +144,7 @@ static struct _cnid_db *cnid_last_new(const char *volpath)
     return cdb;
 }
 
-struct _cnid_db *cnid_last_open(const char *dir, mode_t mask _U_)
+struct _cnid_db *cnid_last_open(const char *dir, mode_t mask _U_, u_int32_t flags _U_)
 {
     struct _cnid_db *cdb;
 
index 45f6d3b5f97cb1eac3890b3184473193e6fe7611..b3277c54e441e2337c497e3d6b2626f6ef351db9 100644 (file)
@@ -20,7 +20,7 @@ struct _cnid_last_private {
 };
 
 extern struct _cnid_module cnid_last_module;
-extern struct _cnid_db *cnid_last_open (const char *, mode_t);
+extern struct _cnid_db *cnid_last_open (const char *, mode_t, u_int32_t flags);
 extern void cnid_last_close (struct _cnid_db *);
 extern cnid_t cnid_last_add (struct _cnid_db *, const struct stat *, const cnid_t,
                                  char *, const size_t, cnid_t);
index 4cd14a05a63395e7d522a330c796e96f84f73bbe..237f94ff328b35459729bb41ebc0442eda627e72 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cnid_mtab.c,v 1.3 2009-11-24 08:59:25 franklahm Exp $
+ * $Id: cnid_mtab.c,v 1.4 2009-11-24 12:18:20 didg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -96,7 +96,7 @@ static struct _cnid_db *cnid_mtab_new(const char *volpath)
     return cdb;
 }
 
-struct _cnid_db *cnid_mtab_open(const char *dir, mode_t mask)
+struct _cnid_db *cnid_mtab_open(const char *dir, mode_t mask, u_int32_t flags _U_)
 {
     struct _cnid_db *cdb;
 
index 37c96de3056f4c1e1e7f641257500bf498066af4..c54cf431ed29f93e9a81dad064a8229502edd562 100644 (file)
@@ -47,7 +47,7 @@ struct _cnid_tdb_private {
 
 /* cnid_open.c */
 extern struct _cnid_module cnid_tdb_module;
-extern struct _cnid_db *cnid_tdb_open (const char *, mode_t);
+extern struct _cnid_db *cnid_tdb_open (const char *, mode_t, u_int32_t flags);
 
 /* cnid_close.c */
 extern void cnid_tdb_close (struct _cnid_db *);
index 5c23f3733a5f9e081e9dca5a67bd14ecf905acd7..3cf5f533c157df97730c4549511453e976462967 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: cnid_tdb_open.c,v 1.5 2009-11-21 13:38:11 didg Exp $
+ * $Id: cnid_tdb_open.c,v 1.6 2009-11-24 12:18:20 didg Exp $
  *
  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved. See COPYRIGHT.
@@ -63,7 +63,7 @@ static struct _cnid_db *cnid_tdb_new(const char *volpath)
 }
 
 /* ---------------------------- */
-struct _cnid_db *cnid_tdb_open(const char *dir, mode_t mask)
+struct _cnid_db *cnid_tdb_open(const char *dir, mode_t mask, u_int32_t flags _U_)
 {
     struct stat               st;
     struct _cnid_db           *cdb;