/*
- * $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>
#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
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. */
};
/*
* $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.
*
/* 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 *);
-
/*
- * $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.
}
/* --------------- */
-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];
/*
- * $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>
}
}
- db = mod->cnid_open(volpath, mask);
+ db = mod->cnid_open(volpath, mask, flags);
if ((mod->flags & CNID_FLAG_SETUID)) {
seteuid(0);
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 *);
/*
- * $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.
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;
/*
- * $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.
}
/* ---------------------- */
-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;
/*
- * $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.
#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);
/* 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 *);
/*
- * $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.
}
/* ---------------------------- */
-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;
/*
- * $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.
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;
};
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);
/*
- * $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.
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;
/* 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 *);
/*
- * $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.
}
/* ---------------------------- */
-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;