summaryrefslogtreecommitdiff
path: root/source3/smbd/trans2.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2004-11-17 15:56:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:53:18 -0500
commit99dd85abe9b96ee78421430f837c97703f09be0f (patch)
tree1e448b7ffa91119b2fadc4b0ee8c4a01c1031c25 /source3/smbd/trans2.c
parent6ab46e3fd2cb2394bb00b45ded0e372d0992284a (diff)
downloadsamba-99dd85abe9b96ee78421430f837c97703f09be0f.tar.gz
samba-99dd85abe9b96ee78421430f837c97703f09be0f.tar.bz2
samba-99dd85abe9b96ee78421430f837c97703f09be0f.zip
r3811: Believe it or not, but this patch seems to be necessary. If someone sets a
folder icon in the start menu and saves the profile on a samba server, after logging in again this setting is gone. Why is this? The folder for which the icon is set must have the read only flag set. If it is not set, the desktop.ini file (the file containing the icon reference) inside that folder is ignored. lp_profile_acls is a hack for such a situation, so overload this parameter with another profile-related hack. Volker (This used to be commit b8d888000eb7456c7620e9a783d6f1b3ba4c8985)
Diffstat (limited to 'source3/smbd/trans2.c')
-rw-r--r--source3/smbd/trans2.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 931b58f389..31a3961550 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -963,8 +963,13 @@ static BOOL get_lanman2_dir_entry(connection_struct *conn,
adate &= ~1;
}
- if(mode & aDIR)
+ if(mode & aDIR) {
+ /* This is necessary, as otherwise the
+ * desktop.ini file in this folder is
+ * ignored */
+ mode |= (lp_profile_acls(SNUM(conn)) ? 1 : 0);
file_size = 0;
+ }
DEBUG(5,("get_lanman2_dir_entry found %s fname=%s\n",pathreal,fname));
@@ -2507,8 +2512,12 @@ static int call_trans2qfilepathinfo(connection_struct *conn, char *inbuf, char *
fullpathname = fname;
file_size = get_file_size(sbuf);
allocation_size = get_allocation_size(fsp,&sbuf);
- if (mode & aDIR)
+ if (mode & aDIR) {
+ /* This is necessary, as otherwise the desktop.ini file in
+ * this folder is ignored */
+ mode |= (lp_profile_acls(SNUM(conn)) ? 1 : 0);
file_size = 0;
+ }
params = Realloc(*pparams,2);
if (params == NULL)