lib/param: Remove 'case insensitive filesystem'
authorAndrew Bartlett <abartlet@samba.org>
Mon, 23 Jul 2012 02:24:42 +0000 (12:24 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Tue, 24 Jul 2012 00:46:12 +0000 (10:46 +1000)
We use the slightly confusing 'case sensitive = yes' option for the same behaviour.

This avoids adding even more confusing documentation for the ntvfs-only option.

Andrew Bartlett

lib/param/loadparm.c
lib/param/param_functions.c
source4/param/share_classic.c

index 5559ef621fd3f7b2b69c9d4a9296b7c57fcfc833..407b942dc986c4f773e6a4a781709d914a7d5c23 100644 (file)
@@ -851,14 +851,6 @@ static struct parm_struct parm_table[] = {
                .enum_list      = NULL,
                .flags          = FLAG_ADVANCED,
        },
-       {
-               .label          = "case insensitive filesystem",
-               .type           = P_BOOL,
-               .p_class        = P_LOCAL,
-               .offset         = LOCAL_VAR(bCIFileSystem),
-               .special        = NULL,
-               .enum_list      = NULL
-       },
 
        {
                .label          = "max print jobs",
index 4e68d6b5ee4c0eb059380bca0f47931b52195acc..3a0ac757508800fd8c060584e4bdca90aa9a7379 100644 (file)
@@ -40,7 +40,6 @@ FN_LOCAL_BOOL(map_hidden, bMap_hidden)
 FN_LOCAL_BOOL(map_archive, bMap_archive)
 FN_LOCAL_BOOL(oplocks, bOpLocks)
 FN_LOCAL_BOOL(strict_sync, bStrictSync)
-FN_LOCAL_BOOL(ci_filesystem, bCIFileSystem)
 FN_LOCAL_BOOL(map_system, bMap_system)
 FN_LOCAL_INTEGER(max_connections, iMaxConnections)
 FN_LOCAL_INTEGER(csc_policy, iCSCPolicy)
index 3442d6bd50dba92f325dfe6ca6441dfb79ccc86b..50b05f322e94fa402f1dc5781e42b35cd4d8f002 100644 (file)
@@ -229,7 +229,32 @@ static bool sclassic_bool_option(struct share_config *scfg, const char *opt_name
        }
 
        if (strcmp(opt_name, SHARE_CI_FILESYSTEM) == 0) {
-               return lpcfg_ci_filesystem(s, lpcfg_default_service(lp_ctx));
+               int case_sensitive = lpcfg_casesensitive(s, lpcfg_default_service(lp_ctx));
+               /*
+                * Yes, this confusingly named option means Samba acts
+                * case sensitive, so that the filesystem can act case
+                * insensitive.
+                *
+                */
+               if (case_sensitive == Auto) {
+                       /* Auto is for unix extensions and unix
+                        * clients, which we don't support here.
+                        * Samba needs to do the case changing,
+                        * because the filesystem is case
+                        * sensitive  */
+                       return false;
+               } else if (case_sensitive) {
+                       /* True means that Samba won't do anything to
+                        * change the case of incoming requests.
+                        * Essentially this means we trust the file
+                        * system to be case insensitive */
+                       return true;
+               } else {
+                       /* False means that Smaba needs to do the case
+                        * changing, because the filesystem is case
+                        * sensitive */
+                       return false;
+               }
        }
 
        DEBUG(0,("request for unknown share bool option '%s'\n",