The branch, master has been updated
       via  8ca4b75 Fix up the man pages to explain that "store dos attributes" 
overrides them.
       via  d25ba3f Allow "store dos attributes" to override the other "map 
XXX" parameters.
      from  9f36d0c build: default --with-regedit to "auto" instead of "yes"

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 8ca4b7597d91355c4885b8ab89b0996c98f5c805
Author: Jeremy Allison <j...@samba.org>
Date:   Mon May 6 14:10:58 2013 -0700

    Fix up the man pages to explain that "store dos attributes" overrides them.
    
    Signed-off-by: Jeremy Allison <j...@samba.org>
    
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abart...@samba.org>
    Autobuild-Date(master): Tue May  7 01:24:54 CEST 2013 on sn-devel-104

commit d25ba3f5a6266c2787ab2cc6b17e0d3cde2e33a9
Author: Jeremy Allison <j...@samba.org>
Date:   Mon May 6 14:10:15 2013 -0700

    Allow "store dos attributes" to override the other "map XXX" parameters.
    
    Makes us consistent with what is described in the man pages.
    
    Signed-off-by: Jeremy Allison <j...@samba.org>
    
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

-----------------------------------------------------------------------

Summary of changes:
 docs-xml/smbdotconf/filename/maparchive.xml        |    6 ++++++
 docs-xml/smbdotconf/filename/maphidden.xml         |    6 ++++++
 docs-xml/smbdotconf/filename/mapreadonly.xml       |    6 ++++++
 docs-xml/smbdotconf/filename/mapsystem.xml         |    6 ++++++
 .../smbdotconf/filename/storedosattributes.xml     |    4 ++--
 source3/smbd/dosmode.c                             |   13 ++++++++-----
 6 files changed, 34 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/docs-xml/smbdotconf/filename/maparchive.xml 
b/docs-xml/smbdotconf/filename/maparchive.xml
index ead72cf..33ff876 100644
--- a/docs-xml/smbdotconf/filename/maparchive.xml
+++ b/docs-xml/smbdotconf/filename/maparchive.xml
@@ -13,6 +13,12 @@
        </para>
 
        <para>
+       Note that this parameter will be ignored if the <smbconfoption 
name="store dos attributes"/>
+       parameter is set, as the DOS archive attribute will then be stored 
inside a UNIX extended
+       attribute.
+       </para>
+
+       <para>
        Note that this requires the <smbconfoption name="create mask"/> 
parameter to be set such that owner 
        execute bit is not masked out (i.e. it must include 100). See the 
parameter 
        <smbconfoption name="create mask"/> for details.
diff --git a/docs-xml/smbdotconf/filename/maphidden.xml 
b/docs-xml/smbdotconf/filename/maphidden.xml
index 841c687..004f493 100644
--- a/docs-xml/smbdotconf/filename/maphidden.xml
+++ b/docs-xml/smbdotconf/filename/maphidden.xml
@@ -8,6 +8,12 @@
        </para>
 
        <para>
+       Note that this parameter will be ignored if the <smbconfoption 
name="store dos attributes"/>
+       parameter is set, as the DOS hidden attribute will then be stored 
inside a UNIX extended
+       attribute.
+       </para>
+
+       <para>
        Note that this requires the <smbconfoption name="create mask"/> to be 
set such that the world execute 
        bit is not masked out (i.e. it must include 001). See the parameter 
<smbconfoption name="create mask"/> 
        for details.
diff --git a/docs-xml/smbdotconf/filename/mapreadonly.xml 
b/docs-xml/smbdotconf/filename/mapreadonly.xml
index 24a2c84..f4ac7c8 100644
--- a/docs-xml/smbdotconf/filename/mapreadonly.xml
+++ b/docs-xml/smbdotconf/filename/mapreadonly.xml
@@ -42,6 +42,12 @@
                </para></listitem>
     </itemizedlist>
 
+        <para>
+        Note that this parameter will be ignored if the <smbconfoption 
name="store dos attributes"/>
+        parameter is set, as the DOS 'read-only' attribute will then be stored 
inside a UNIX extended
+        attribute.
+        </para>
+
 </description>
 <value type="default">yes</value>
 </samba:parameter>
diff --git a/docs-xml/smbdotconf/filename/mapsystem.xml 
b/docs-xml/smbdotconf/filename/mapsystem.xml
index 021602d..5605d88 100644
--- a/docs-xml/smbdotconf/filename/mapsystem.xml
+++ b/docs-xml/smbdotconf/filename/mapsystem.xml
@@ -7,6 +7,12 @@
        This controls whether DOS style system files should be mapped to the 
UNIX group execute bit.
        </para>
 
+        <para>
+        Note that this parameter will be ignored if the <smbconfoption 
name="store dos attributes"/>
+        parameter is set, as the DOS system attribute will then be stored 
inside a UNIX extended
+        attribute.
+        </para>
+
        <para>
        Note that this requires the <smbconfoption name="create mask"/> to be 
set such that the group 
        execute bit is not masked out (i.e. it must include 010). See the 
parameter 
diff --git a/docs-xml/smbdotconf/filename/storedosattributes.xml 
b/docs-xml/smbdotconf/filename/storedosattributes.xml
index 621b4ac..acd78b0 100644
--- a/docs-xml/smbdotconf/filename/storedosattributes.xml
+++ b/docs-xml/smbdotconf/filename/storedosattributes.xml
@@ -8,9 +8,9 @@
        READ-ONLY) from a filesystem extended attribute, before mapping DOS 
attributes to UNIX permission bits (such
        as occurs with <smbconfoption name="map hidden"/> and <smbconfoption 
name="map readonly"/>).  When set, DOS
        attributes will be stored onto an extended attribute in the UNIX 
filesystem, associated with the file or
-       directory.  For no other mapping to occur as a fall-back, the 
parameters <smbconfoption name="map hidden"/>,
+       directory.  When this parameter is set it will override the parameters 
<smbconfoption name="map hidden"/>,
        <smbconfoption name="map system"/>, <smbconfoption name="map archive"/> 
and <smbconfoption name="map
-       readonly"/> must be set to off.  This parameter writes the DOS 
attributes as a string into the extended
+       readonly"/> and they will behave as if they were set to off. This 
parameter writes the DOS attributes as a string into the extended
        attribute named "user.DOSATTRIB". This extended attribute is explicitly 
hidden from smbd clients requesting an
        EA list. On Linux the filesystem must have been mounted with the mount 
option user_xattr in order for
        extended attributes to work, also extended attributes must be compiled 
into the Linux kernel.
diff --git a/source3/smbd/dosmode.c b/source3/smbd/dosmode.c
index b534626..04d27c7 100644
--- a/source3/smbd/dosmode.c
+++ b/source3/smbd/dosmode.c
@@ -354,10 +354,6 @@ static bool set_ea_dos_attribute(connection_struct *conn,
        enum ndr_err_code ndr_err;
        DATA_BLOB blob;
 
-       if (!lp_store_dos_attributes(SNUM(conn))) {
-               return False;
-       }
-
        ZERO_STRUCT(dosattrib);
        ZERO_STRUCT(blob);
 
@@ -773,7 +769,14 @@ int file_set_dosmode(connection_struct *conn, struct 
smb_filename *smb_fname,
        }
 #endif
        /* Store the DOS attributes in an EA by preference. */
-       if (set_ea_dos_attribute(conn, smb_fname, dosmode)) {
+       if (lp_store_dos_attributes(SNUM(conn))) {
+               /*
+                * Don't fall back to using UNIX modes. Finally
+                * follow the smb.conf manpage.
+                */
+               if (!set_ea_dos_attribute(conn, smb_fname, dosmode)) {
+                       return -1;
+               }
                if (!newfile) {
                        notify_fname(conn, NOTIFY_ACTION_MODIFIED,
                                     FILE_NOTIFY_CHANGE_ATTRIBUTES,


-- 
Samba Shared Repository

Reply via email to