Author: vlendec
Date: 2006-05-27 16:55:30 +0000 (Sat, 27 May 2006)
New Revision: 15909

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15909

Log:
Implement recycle:subdir_mode
Modified:
   branches/SAMBA_3_0/source/modules/vfs_recycle.c
   trunk/source/modules/vfs_recycle.c


Changeset:
Modified: branches/SAMBA_3_0/source/modules/vfs_recycle.c
===================================================================
--- branches/SAMBA_3_0/source/modules/vfs_recycle.c     2006-05-27 12:16:48 UTC 
(rev 15908)
+++ branches/SAMBA_3_0/source/modules/vfs_recycle.c     2006-05-27 16:55:30 UTC 
(rev 15909)
@@ -181,6 +181,23 @@
        return (mode_t)dirmode;
 }
 
+static mode_t recycle_subdir_mode(vfs_handle_struct *handle)
+{
+       int dirmode;
+       const char *buff;
+
+       buff = lp_parm_const_string(SNUM(handle->conn), "recycle", 
"subdir_mode", NULL);
+
+       if (buff != NULL ) {
+               sscanf(buff, "%o", &dirmode);
+       } else {
+               dirmode=recycle_directory_mode(handle);
+       }
+
+       DEBUG(10, ("recycle: subdir_mode = %o\n", dirmode));
+       return (mode_t)dirmode;
+}
+
 static BOOL recycle_directory_exist(vfs_handle_struct *handle, const char 
*dname)
 {
        SMB_STRUCT_STAT st;
@@ -270,6 +287,7 @@
                        }
                }
                safe_strcat(new_dir, "/", len);
+               mode = recycle_subdir_mode(handle);
        }
 
        ret = True;

Modified: trunk/source/modules/vfs_recycle.c
===================================================================
--- trunk/source/modules/vfs_recycle.c  2006-05-27 12:16:48 UTC (rev 15908)
+++ trunk/source/modules/vfs_recycle.c  2006-05-27 16:55:30 UTC (rev 15909)
@@ -181,6 +181,23 @@
        return (mode_t)dirmode;
 }
 
+static mode_t recycle_subdir_mode(vfs_handle_struct *handle)
+{
+       int dirmode;
+       const char *buff;
+
+       buff = lp_parm_const_string(SNUM(handle->conn), "recycle", 
"subdir_mode", NULL);
+
+       if (buff != NULL ) {
+               sscanf(buff, "%o", &dirmode);
+       } else {
+               dirmode=recycle_directory_mode(handle);
+       }
+
+       DEBUG(10, ("recycle: subdir_mode = %o\n", dirmode));
+       return (mode_t)dirmode;
+}
+
 static BOOL recycle_directory_exist(vfs_handle_struct *handle, const char 
*dname)
 {
        SMB_STRUCT_STAT st;
@@ -270,6 +287,7 @@
                        }
                }
                safe_strcat(new_dir, "/", len);
+               mode = recycle_subdir_mode(handle);
        }
 
        ret = True;

Reply via email to