From: didg Date: Tue, 24 Nov 2009 11:40:11 +0000 (+0000) Subject: allow more values in cnid_open flags parameter X-Git-Tag: branch-symlink-start~95 X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=commitdiff_plain;h=6d36dfa12919387d2822025297deb24cb96403af allow more values in cnid_open flags parameter --- diff --git a/etc/afpd/volume.c b/etc/afpd/volume.c index 0a69bf9a..c802f817 100644 --- a/etc/afpd/volume.c +++ b/etc/afpd/volume.c @@ -1,5 +1,5 @@ /* - * $Id: volume.c,v 1.104 2009-11-24 11:18:38 didg Exp $ + * $Id: volume.c,v 1.105 2009-11-24 11:40:11 didg Exp $ * * Copyright (c) 1990,1993 Regents of The University of Michigan. * All Rights Reserved. See COPYRIGHT. @@ -1831,14 +1831,20 @@ static int volume_codepage(AFPObj *obj, struct vol *volume) /* ------------------------- */ static int volume_openDB(struct vol *volume) { + int flags = 0; + + if ((volume->v_flags & AFPVOL_NODEV)) { + flags |= CNID_FLAG_NODEV; + } + if (volume->v_cnidscheme == NULL) { volume->v_cnidscheme = strdup(DEFAULT_CNID_SCHEME); LOG(log_info, logtype_afpd, "Volume %s use CNID scheme %s.", volume->v_path, volume->v_cnidscheme); } if (volume->v_dbpath) - volume->v_cdb = cnid_open (volume->v_dbpath, volume->v_umask, volume->v_cnidscheme, (volume->v_flags & AFPVOL_NODEV)); + volume->v_cdb = cnid_open (volume->v_dbpath, volume->v_umask, volume->v_cnidscheme, flags); else - volume->v_cdb = cnid_open (volume->v_path, volume->v_umask, volume->v_cnidscheme, (volume->v_flags & AFPVOL_NODEV)); + volume->v_cdb = cnid_open (volume->v_path, volume->v_umask, volume->v_cnidscheme, flags); return (!volume->v_cdb)?-1:0; } diff --git a/libatalk/cnid/cnid.c b/libatalk/cnid/cnid.c index cbf4958b..58aa780c 100644 --- a/libatalk/cnid/cnid.c +++ b/libatalk/cnid/cnid.c @@ -1,5 +1,5 @@ /* - * $Id: cnid.c,v 1.7 2009-11-20 05:19:04 didg Exp $ + * $Id: cnid.c,v 1.8 2009-11-24 11:40:11 didg Exp $ * * Copyright (c) 2003 the Netatalk Team * Copyright (c) 2003 Rafal Lewczuk @@ -143,7 +143,7 @@ struct _cnid_db *cnid_open(const char *volpath, mode_t mask, char *type, int fla return NULL; } /* FIXME should module know about it ? */ - if (flags) { + if ((flags & CNID_FLAG_NODEV)) { db->flags |= CNID_FLAG_NODEV; } db->flags |= mod->flags;