]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
r3811: Believe it or not, but this patch seems to be necessary. If someone sets a
authorVolker Lendecke <vlendec@samba.org>
Wed, 17 Nov 2004 15:56:47 +0000 (15:56 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:53:18 +0000 (10:53 -0500)
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

source/smbd/trans2.c

index 931b58f3894167c53c795d8c7eeda3a3ae705378..31a396155080675e5877d06352496c68cbdcb431 100644 (file)
@@ -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)