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

index 111f1a7a6c793afeee0235adfdb9c563f4d9b918..903a5ac0f682b0a8fe73f4519f2d83805f567ec4 100644 (file)
 #                         e.g. "MAC_ROMAN", "MAC_CYRILLIC"
 #
 # 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
+
 #
 # miscellaneous options [syntax: options:option1,option2]:
 # prodos              -> make compatible with appleII clients.
index bc0b88fcbae45e10ed8800493c6e29b1c6e591cc..fca4bb9835bb0be192f23154ab4771155996e31a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: volume.c,v 1.51.2.7.2.33.2.21 2009-01-30 04:58:52 didg Exp $
+ * $Id: volume.c,v 1.51.2.7.2.33.2.22 2009-02-01 07:00:12 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -487,12 +487,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);
 
@@ -684,6 +684,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;