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;
