diff options
author | Volker Lendecke <vlendec@samba.org> | 2004-11-17 15:56:47 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:53:18 -0500 |
commit | 99dd85abe9b96ee78421430f837c97703f09be0f (patch) | |
tree | 1e448b7ffa91119b2fadc4b0ee8c4a01c1031c25 | |
parent | 6ab46e3fd2cb2394bb00b45ded0e372d0992284a (diff) | |
download | samba-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)
-rw-r--r-- | source3/smbd/trans2.c | 13 |
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) |