--- vfs_recycle.c.orig 2004-07-20 18:28:08.000000000 +0200 +++ vfs_recycle.c 2004-07-30 16:07:23.000000000 +0200 @@ -153,6 +153,23 @@ return maxsize; } +static mode_t recycle_directory_mode(vfs_handle_struct *handle) +{ + mode_t dirmode; + const char *buff; + + buff = lp_parm_const_string(SNUM(handle->conn), "recycle", "directory_mode", NULL); + + if (buff != NULL ) + sscanf(buff, "%o", (int *)&dirmode); + else + dirmode=S_IRUSR | S_IWUSR | S_IXUSR; + + DEBUG(10, ("recycle: directory_mode = %o\n", dirmode)); + + return dirmode; +} + static BOOL recycle_directory_exist(vfs_handle_struct *handle, const char *dname) { SMB_STRUCT_STAT st; @@ -213,7 +230,7 @@ char *tok_str; BOOL ret = False; - mode = S_IRUSR | S_IWUSR | S_IXUSR; + mode = recycle_directory_mode(handle); tmp_str = strdup(dname); ALLOC_CHECK(tmp_str, done);