s3/smbd: new "mangled names" setting "illegal"
authorRalph Boehme <slow@samba.org>
Thu, 17 Nov 2016 13:24:07 +0000 (14:24 +0100)
committerJeremy Allison <jra@samba.org>
Mon, 9 Jan 2017 18:31:20 +0000 (19:31 +0100)
This does mangling for names with illegal NTFS characters, but not for
names longer then 8.3:

Name mangling with mangled named = yes
======================================

Mangled | Short | Name
----------------------------
        |       | foo
        | yes   | 123456789
yes     |       | foo:bar

Name mangling with mangled named = illegal
==========================================

Mangled | Short | Name
----------------------------
        |       | foo
        |       | 123456789
yes     |       | foo:bar

Setting "mangled names = illegal" is the most sensible setting for
modern clients that don't use the shortname anymore.

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
docs-xml/smbdotconf/filename/manglednames.xml
lib/param/loadparm.h
lib/param/param_table.c

index bd5d97f5e8a7bedb0c58650b26b559a310e14ea1..972834e561a2afdf7dbbd4abf9014c3de4f8bf5a 100644 (file)
@@ -1,5 +1,6 @@
 <samba:parameter name="mangled names"
-                 type="boolean"
+                 type="enum"
+                 enumlist="enum_mangled_names"
                  context="S"
                  parm="1"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
        <para>See the section on <smbconfoption name="name mangling"/> for 
        details on how to control the mangling process.</para>
 
+       <para>Possible option settings are</para>
+
+       <itemizedlist>
+               <listitem><para><emphasis>yes (default)</emphasis> -
+               enables name mangling for all not DOS 8.3 conforming
+               names.</para></listitem>
+
+               <listitem><para><emphasis>no</emphasis> - disables any
+               name mangling.</para></listitem>
+
+               <listitem><para><emphasis>illegal</emphasis> - does
+               mangling for names with illegal NTFS characters. This
+               is the most sensible setting for modern clients that
+               don't use the shortname anymore.</para></listitem>
+       </itemizedlist>
+
        <para>If mangling is used then the mangling method is as follows:</para>
 
        <itemizedlist>
@@ -56,4 +73,5 @@
        do not change between sessions.</para>
 </description>
 <value type="default">yes</value>
+<value type="example">illegal</value>
 </samba:parameter>
index 2cd5ccac1c29f7d86e2be8a3c567a5cd956316f2..6d01b37f764e0e8eee17fc1e3b20853c8485bf97 100644 (file)
@@ -237,7 +237,7 @@ enum inheritowner_options {
 };
 
 /* mangled names options */
-enum mangled_names_options {MANGLED_NAMES_NO, MANGLED_NAMES_YES};
+enum mangled_names_options {MANGLED_NAMES_NO, MANGLED_NAMES_YES, MANGLED_NAMES_ILLEGAL};
 
 /*
  * Default passwd chat script.
index 8eb791aa2c4b18b2025bef1595d786921ef5113b..95c3b8c61883b8d0080ce0ec330cef5ca5915d58 100644 (file)
@@ -319,6 +319,7 @@ static const struct enum_list enum_mangled_names[] = {
        {MANGLED_NAMES_NO, "no"},
        {MANGLED_NAMES_NO, "false"},
        {MANGLED_NAMES_NO, "0"},
+       {MANGLED_NAMES_ILLEGAL, "illegal"},
        {MANGLED_NAMES_YES, "yes"},
        {MANGLED_NAMES_YES, "true"},
        {MANGLED_NAMES_YES, "1"},