]> arthur.barton.de Git - netatalk.git/commitdiff
fix dperm and fperm options, from Frank Lahm
authordidg <didg>
Sun, 1 Feb 2009 07:03:56 +0000 (07:03 +0000)
committerdidg <didg>
Sun, 1 Feb 2009 07:03:56 +0000 (07:03 +0000)
config/AppleVolumes.default.tmpl
etc/afpd/volume.c

index c855ffd068a61cb338ba8557b25828d857deed69..884c40633526f3fc7e010e87dd7d76f597723ec6 100644 (file)
 # nostat              -> don't stat volume path when enumerating volumes list
 # upriv               -> use unix privilege.  
 # perm                -> default permission value OR with the client requested perm
+# dperm               -> default permission value for directories OR with the client 
+#                       requested perm
+# fperm               -> default permission value for filesOR with the client 
+#                       requested perm
+
 #
 #
 # dbpath:path         -> store the database stuff in the following path.
index 4b9acfd7e35ff77451651a6bc072d7e12e3dae0e..bbd67cde71069d66e9703eb81a92417971b7189b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: volume.c,v 1.76 2009-01-30 04:57:42 didg Exp $
+ * $Id: volume.c,v 1.77 2009-02-01 07:03:57 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -497,12 +497,12 @@ static void volset(struct vol_option *options, struct vol_option *save,
 
     } else if (optionok(tmp, "umask:", val)) {
        options[VOLOPT_UMASK].i_value = (int)strtol(val +1, NULL, 8);
-    } else if (optionok(tmp, "perm:", val)) {
-        options[VOLOPT_DFLTPERM].i_value = (int)strtol(val+1, NULL, 8);
     } else if (optionok(tmp, "dperm:", val)) {
         options[VOLOPT_DPERM].i_value = (int)strtol(val+1, NULL, 8);
     } else if (optionok(tmp, "fperm:", val)) {
         options[VOLOPT_FPERM].i_value = (int)strtol(val+1, NULL, 8);
+    } else if (optionok(tmp, "perm:", val)) {
+        options[VOLOPT_DFLTPERM].i_value = (int)strtol(val+1, NULL, 8);
     } else if (optionok(tmp, "mapchars:",val)) {
         setoption(options, save, VOLOPT_MAPCHARS, val);
 
@@ -658,6 +658,10 @@ static int creatvol(AFPObj *obj, struct passwd *pwd,
            volume->v_umask = (mode_t)options[VOLOPT_UMASK].i_value;
 
        if (options[VOLOPT_DPERM].i_value)
+           volume->v_dperm = (mode_t)options[VOLOPT_DPERM].i_value;
+
+       if (options[VOLOPT_FPERM].i_value)
+           volume->v_fperm = (mode_t)options[VOLOPT_FPERM].i_value;
 
        if (options[VOLOPT_DFLTPERM].i_value)
            volume->v_perm = (mode_t)options[VOLOPT_DFLTPERM].i_value;