r5183: Ensure we correctly set the per-connection "case_sensitive" setting.
authorJeremy Allison <jra@samba.org>
Thu, 3 Feb 2005 02:02:54 +0000 (02:02 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:55:32 +0000 (10:55 -0500)
Rename dptrs_open to the more correct dirhandles_open.
Remove old #if 1.
Jeremy.
(This used to be commit c43bae306a18f5716acbe8571f4f414873400cb1)

source3/smbd/dir.c
source3/smbd/filename.c
source3/smbd/service.c

index e9934ff49c3622f4f45dd317b6d09e95dd3358c5..fb1a7000749bcb413d2a8033f73f59a4f1f4251d 100644 (file)
@@ -57,7 +57,7 @@ struct dptr_struct {
 
 static struct bitmap *dptr_bmap;
 static struct dptr_struct *dirptrs;
-static int dptrs_open = 0;
+static int dirhandles_open = 0;
 
 #define INVALID_DPTR_KEY (-3)
 
@@ -135,7 +135,7 @@ static struct dptr_struct *dptr_get(int key, BOOL forclose)
        for(dptr = dirptrs; dptr; dptr = dptr->next) {
                if(dptr->dnum == key) {
                        if (!forclose && !dptr->dir_hnd) {
-                               if (dptrs_open >= MAX_OPEN_DIRECTORIES)
+                               if (dirhandles_open >= MAX_OPEN_DIRECTORIES)
                                        dptr_idleoldest();
                                DEBUG(4,("dptr_get: Reopening dptr key %d\n",key));
                                if (!(dptr->dir_hnd = OpenDir(dptr->conn, dptr->path))) {
@@ -385,7 +385,7 @@ int dptr_create(connection_struct *conn, pstring path, BOOL old_handle, BOOL exp
 
        string_set(&conn->dirpath,dir2);
 
-       if (dptrs_open >= MAX_OPEN_DIRECTORIES)
+       if (dirhandles_open >= MAX_OPEN_DIRECTORIES)
                dptr_idleoldest();
 
        dptr = SMB_MALLOC_P(struct dptr_struct);
@@ -968,7 +968,7 @@ struct smb_Dir *OpenDir(connection_struct *conn, const char *name)
                goto fail;
        }
 
-       dptrs_open++;
+       dirhandles_open++;
        return dirp;
 
   fail:
@@ -1004,7 +1004,7 @@ int CloseDir(struct smb_Dir *dirp)
        }
        SAFE_FREE(dirp->name_cache);
        SAFE_FREE(dirp);
-       dptrs_open--;
+       dirhandles_open--;
        return ret;
 }
 
index c04b43b8739b1691123cbaecfab9906cdfbf8f30..8c484dd232af19279198e55be77703ccdbddbe36 100644 (file)
@@ -150,11 +150,7 @@ BOOL unix_convert(pstring name,connection_struct *conn,char *saved_last_componen
                        pstrcpy(saved_last_component, name);
        }
 
-#if 1
        if (!conn->case_preserve || (mangle_is_8_3(name, False) && !conn->short_case_preserve))
-#else
-       if (!conn->case_sensitive && (!conn->case_preserve || (mangle_is_8_3(name, False) && !conn->short_case_preserve)))
-#endif
                strnorm(name, lp_defaultcase(SNUM(conn)));
 
        start = name;
index 2e60adc63663d2454afc72e7c1ec6094c3096ef1..f199fe3ade6abe5f290de018aa2a846dceacf994 100644 (file)
@@ -60,17 +60,26 @@ BOOL set_current_service(connection_struct *conn, uint16 flags, BOOL do_chdir)
        last_flags = flags;
        
        /* Obey the client case sensitivity requests - only for clients that support it. */
-       if (lp_casesensitive(snum) == Auto) {
-               /* We need this uglyness due to DOS/Win9x clients that lie about case insensitivity. */
-               enum remote_arch_types ra_type = get_remote_arch();
-               if ((ra_type != RA_SAMBA) && (ra_type != RA_CIFSFS)) {
-                       /* Client can't support per-packet case sensitive pathnames. */
+       switch (lp_casesensitive(snum)) {
+               case Auto:
+                       {
+                               /* We need this uglyness due to DOS/Win9x clients that lie about case insensitivity. */
+                               enum remote_arch_types ra_type = get_remote_arch();
+                               if ((ra_type != RA_SAMBA) && (ra_type != RA_CIFSFS)) {
+                                       /* Client can't support per-packet case sensitive pathnames. */
+                                       conn->case_sensitive = False;
+                               } else {
+                                       conn->case_sensitive = !(flags & FLAG_CASELESS_PATHNAMES);
+                               }
+                       }
+                       break;
+               case True:
+                       conn->case_sensitive = True;
+                       break;
+               default:
                        conn->case_sensitive = False;
-               } else {
-                       conn->case_sensitive = !(flags & FLAG_CASELESS_PATHNAMES);
-               }
+                       break;
        }
-
        magic_char = lp_magicchar(snum);
        return(True);
 }