s3:libsmb: call smbXcli_tcon_{get,set}_fs_attributes() from cli_set_case_sensitive()
authorStefan Metzmacher <metze@samba.org>
Fri, 27 Sep 2013 03:11:45 +0000 (05:11 +0200)
committerMichael Adam <obnox@samba.org>
Thu, 17 Oct 2013 14:12:17 +0000 (16:12 +0200)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10200

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
source3/libsmb/clientgen.c

index 821a134a6ce8f588807269a34feef08fbbfc46bd..e717bb2ed322d9480f799c1a81292e19f651f642 100644 (file)
@@ -426,6 +426,23 @@ uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid)
 bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive)
 {
        bool ret = cli->case_sensitive;
+       uint32_t fs_attrs;
+       struct smbXcli_tcon *tcon;
+
+       if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
+               tcon = cli->smb2.tcon;
+       } else {
+               tcon = cli->smb1.tcon;
+       }
+
+       fs_attrs = smbXcli_tcon_get_fs_attributes(tcon);
+       if (case_sensitive) {
+               fs_attrs |= FILE_CASE_SENSITIVE_SEARCH;
+       } else {
+               fs_attrs &= ~FILE_CASE_SENSITIVE_SEARCH;
+       }
+       smbXcli_tcon_set_fs_attributes(tcon, fs_attrs);
+
        cli->case_sensitive = case_sensitive;
        return ret;
 }