]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/directory.c
add dperm and fperm permissions default
[netatalk.git] / etc / afpd / directory.c
index f83fef25f413869583fe9dd5b46f53393ccb62fa..a108561e06ca26ffc38051ed44f6cbfe225df90a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: directory.c,v 1.88 2008-12-03 18:35:44 didg Exp $
+ * $Id: directory.c,v 1.90 2009-01-30 04:57:42 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -1889,7 +1889,7 @@ int setdirparams(const struct vol *vol,
             ma.ma_world = *buf++;
             ma.ma_group = *buf++;
             ma.ma_owner = *buf++;
-            mpriv = mtoumode( &ma ) | vol->v_perm;
+            mpriv = mtoumode( &ma ) | vol->v_dperm;
             if (dir_rx_set(mpriv) && setdirmode( vol, upath, mpriv) < 0 ) {
                 err = set_dir_errors(path, "setdirmode", errno);
                 bitmap = 0;
@@ -1918,7 +1918,7 @@ int setdirparams(const struct vol *vol,
                 change_parent_mdate = 1;
                 memcpy( &upriv, buf, sizeof( upriv ));
                 buf += sizeof( upriv );
-                upriv = ntohl (upriv) | vol->v_perm;
+                upriv = ntohl (upriv) | vol->v_dperm;
                 if (dir_rx_set(upriv)) {
                     /* maybe we are trying to set perms back */
                     if ( setdirunixmode(vol, upath, upriv) < 0 ) {
@@ -2185,7 +2185,8 @@ int     ibuflen _U_, *rbuflen;
     if ( fsync ( dfd ) < 0 ) {
         LOG(log_error, logtype_afpd, "syncdir(%s): ddir(%d) %s", dir->d_u_name, dfd, strerror(errno) );
     }
-   
+    closedir(dp);
+    
     return ( AFP_OK );
 }