The branch, v3-2-test has been updated
       via  22ac34a329c9be9cf7d1e6749ebcfb50215378e4 (commit)
       via  30cb2d215f1a4a440d5ecaab3f898daa714eee2b (commit)
       via  de3c5b808a941ac8e9ebe7169536d8290067eef5 (commit)
      from  cebaa483e62910ac3f87cd135b2aff18dc880416 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 22ac34a329c9be9cf7d1e6749ebcfb50215378e4
Author: James Peach <[EMAIL PROTECTED]>
Date:   Sat Dec 22 14:10:06 2007 -0800

    Fix "may be used uninitialized" compiler warnings.

commit 30cb2d215f1a4a440d5ecaab3f898daa714eee2b
Merge: de3c5b808a941ac8e9ebe7169536d8290067eef5 
cebaa483e62910ac3f87cd135b2aff18dc880416
Author: James Peach <[EMAIL PROTECTED]>
Date:   Sat Dec 22 14:01:44 2007 -0800

    Merge branch 'v3-2-test' of git://git.samba.org/samba into v3-2-test

commit de3c5b808a941ac8e9ebe7169536d8290067eef5
Author: James Peach <[EMAIL PROTECTED]>
Date:   Sat Dec 22 14:01:25 2007 -0800

    Cache the underlying filesystem capabilities at connection time.
    
    This change alters the Samba connection code to cache the filesystem
    capabilities when a new client connects. This can be used to enable
    filesystem specific optimisations is a general manner.

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

Summary of changes:
 source/auth/auth_util.c |    6 +++---
 source/include/smb.h    |    4 ++++
 source/smbd/service.c   |   15 +++++++++++++++
 3 files changed, 22 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/auth/auth_util.c b/source/auth/auth_util.c
index 373a2a3..3f65e6b 100644
--- a/source/auth/auth_util.c
+++ b/source/auth/auth_util.c
@@ -1423,7 +1423,7 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
        static const char zeros[16] = { 0, };
 
        NTSTATUS nt_status = NT_STATUS_OK;
-       char *found_username;
+       char *found_username = NULL;
        const char *nt_domain;
        const char *nt_username;
        struct samu *sam_account = NULL;
@@ -1431,8 +1431,8 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
        DOM_SID group_sid;
        bool username_was_mapped;
 
-       uid_t uid;
-       gid_t gid;
+       uid_t uid = (uid_t)-1;
+       gid_t gid = (gid_t)-1;
 
        auth_serversupplied_info *result;
 
diff --git a/source/include/smb.h b/source/include/smb.h
index 1222c9a..63ae51e 100644
--- a/source/include/smb.h
+++ b/source/include/smb.h
@@ -658,10 +658,14 @@ typedef struct connection_struct {
        int num_files_open;
        unsigned int num_smb_operations; /* Count of smb operations on this 
tree. */
 
+       /* Semantics requested by the client or forced by the server config. */
        bool case_sensitive;
        bool case_preserve;
        bool short_case_preserve;
 
+       /* Semantics provided by the underlying filesystem. */
+       int fs_capabilities;
+
        name_compare_entry *hide_list; /* Per-share list of files to return as 
hidden. */
        name_compare_entry *veto_list; /* Per-share list of files to veto 
(never show). */
        name_compare_entry *veto_oplock_list; /* Per-share list of files to 
refuse oplocks on. */       
diff --git a/source/smbd/service.c b/source/smbd/service.c
index ed43528..8e69a3b 100644
--- a/source/smbd/service.c
+++ b/source/smbd/service.c
@@ -1165,6 +1165,21 @@ static connection_struct *make_connection_snum(int snum, 
user_struct *vuser,
        }
 #endif
 
+       /* Figure out the characteristics of the underlying filesystem. This
+        * assumes that all the filesystem mounted withing a share path have
+        * the same characteristics, which is likely but not guaranteed.
+        */
+       {
+               vfs_statvfs_struct svfs;
+
+               conn->fs_capabilities =
+                   FILE_CASE_SENSITIVE_SEARCH | FILE_CASE_PRESERVED_NAMES;
+
+               if (SMB_VFS_STATVFS(conn, conn->connectpath, &svfs) == 0) {
+                       conn->fs_capabilities = svfs.FsCapabilities;
+               }
+       }
+
        /*
         * Print out the 'connected as' stuff here as we need
         * to know the effective uid and gid we will be using


-- 
Samba Shared Repository

Reply via email to