will be able to upgrade the CNID databases.
* NEW: AppleDouble compatible UNIX files utility suite `ad ...`.
With 2.1 only `ad ls`.
+* NEW: afpd: AFP 3.2 support
* NEW: afpd: ACL support with ZFS
* NEW: afpd: ExtendedAttributes support with ZFS
+* NEW: afpd: store and read CNIDs to/from AppleDouble files by default.
+ This is used as a cache and as a backup in case the database
+ is deleted or corrupted. It can be disabled with a new volume
+ option "nocnidcache".
+
Changes in 2.0.x
================
# compatible filesystem (e.g. ZFS) and an ACL API
# compatible to *Solaris. In other words: this requires
# Solaris, Opensolaris or a derived distribution.
+# nocnidcache -> Don't store and read CNID to/from AppleDouble file.
+# This should not be used as it also prevents a CNID
+# database rebuild with `dbd`!
# dbpath:path -> store the database stuff in the following path.
# password:password -> set a volume password (8 characters max)
/*
- * $Id: volume.c,v 1.88 2009-07-20 23:23:02 didg Exp $
+ * $Id: volume.c,v 1.89 2009-09-04 07:59:50 franklahm Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
{AFPVOL_NODEV, "NODEV"}, /* always use 0 for device number in cnid calls */
{AFPVOL_CASEINSEN, "CASEINSENSITIVE"}, /* volume is case insensitive */
{AFPVOL_EILSEQ, "ILLEGALSEQ"}, /* encode illegal sequence */
- {AFPVOL_CACHE, "CACHEID"}, /* Use adouble v2 CNID caching, default don't use it */
+ {AFPVOL_CACHE, "CACHEID"}, /* Use adouble v2 CNID caching. Default: yes */
{AFPVOL_EXT_ATTRS, "EXT_ATTRS"}, /* Vol supports Extened Attributes */
{AFPVOL_ACLS, "ACLS"}, /* Vol supports ACLs */
{0, NULL}
options[VOLOPT_FLAGS].i_value |= AFPVOL_CASEINSEN;
else if (strcasecmp(p, "illegalseq") == 0)
options[VOLOPT_FLAGS].i_value |= AFPVOL_EILSEQ;
- else if (strcasecmp(p, "cachecnid") == 0)
- options[VOLOPT_FLAGS].i_value |= AFPVOL_CACHE;
+ else if (strcasecmp(p, "nocnidcache") == 0)
+ options[VOLOPT_FLAGS].i_value &= ~AFPVOL_CACHE;
p = strtok(NULL, ",");
}
}
memset(save_options, 0, sizeof(save_options));
+
+ /* Enable some default options for all volumes */
+ save_options[VOLOPT_FLAGS].i_value |= AFPVOL_CACHE;
+
while ( myfgets( buf, sizeof( buf ), fp ) != NULL ) {
initline( strlen( buf ), buf );
parseline( sizeof( path ) - 1, path );