]> arthur.barton.de Git - netatalk.git/commitdiff
allow more values in cnid_open flags parameter
authordidg <didg>
Tue, 24 Nov 2009 11:40:11 +0000 (11:40 +0000)
committerdidg <didg>
Tue, 24 Nov 2009 11:40:11 +0000 (11:40 +0000)
etc/afpd/volume.c
libatalk/cnid/cnid.c

index 0a69bf9a675d32f1d449f1095b4a6d4115b19c35..c802f8173d7083af335fa9e5667149c87bfdb413 100644 (file)
@@ -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;
 }
 
index cbf4958b1847895a8e8463a911603d9988bf6dae..58aa780c452623ea9487db8902de620b86dab3de 100644 (file)
@@ -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 <rlewczuk@pronet.pl>
@@ -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;