summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2016-11-17 14:24:07 +0100
committerJeremy Allison <jra@samba.org>2017-01-09 19:31:20 +0100
commit18591edafad17172502cc9b831d58d27f9076bbc (patch)
tree439957c930a6a47f80bd14c9dd1c3f50c96e6500
parent19eae537739daf95d10b67d9888769e7bf895d76 (diff)
downloadsamba-18591edafad17172502cc9b831d58d27f9076bbc.tar.gz
s3/smbd: new "mangled names" setting "illegal"
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>
-rw-r--r--docs-xml/smbdotconf/filename/manglednames.xml20
-rw-r--r--lib/param/loadparm.h2
-rw-r--r--lib/param/param_table.c1
3 files changed, 21 insertions, 2 deletions
diff --git a/docs-xml/smbdotconf/filename/manglednames.xml b/docs-xml/smbdotconf/filename/manglednames.xml
index bd5d97f5e8a..972834e561a 100644
--- a/docs-xml/smbdotconf/filename/manglednames.xml
+++ b/docs-xml/smbdotconf/filename/manglednames.xml
@@ -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">
@@ -11,6 +12,22 @@
<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>
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
index 2cd5ccac1c2..6d01b37f764 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -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.
diff --git a/lib/param/param_table.c b/lib/param/param_table.c
index 8eb791aa2c4..95c3b8c6188 100644
--- a/lib/param/param_table.c
+++ b/lib/param/param_table.c
@@ -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"},