From 6d36dfa12919387d2822025297deb24cb96403af Mon Sep 17 00:00:00 2001 From: didg Date: Tue, 24 Nov 2009 11:40:11 +0000 Subject: [PATCH] allow more values in cnid_open flags parameter --- etc/afpd/volume.c | 12 +++++++++--- libatalk/cnid/cnid.c | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) 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; -- 2.39.2