libcli/smb: setup tcon->smb2.should_encrypt in smb2cli_tcon_set_values()
authorStefan Metzmacher <metze@samba.org>
Wed, 25 Jul 2012 10:34:20 +0000 (12:34 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 25 Jul 2012 14:44:22 +0000 (16:44 +0200)
metze

Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Wed Jul 25 16:44:22 CEST 2012 on sn-devel-104

libcli/smb/smbXcli_base.c

index 9e00ba9cab08814a6008bef7f564377a88febe99..7a5a0b036b043145d90373cfd1fc9816ddf6804c 100644 (file)
@@ -167,6 +167,7 @@ struct smbXcli_tcon {
                uint32_t flags;
                uint32_t capabilities;
                uint32_t maximal_access;
+               bool should_encrypt;
        } smb2;
 };
 
@@ -2467,7 +2468,9 @@ struct tevent_req *smb2cli_req_create(TALLOC_CTX *mem_ctx,
        if (tcon) {
                tid = tcon->smb2.tcon_id;
 
-               /* TODO: turn on encryption based on the tree connect. */
+               if (tcon->smb2.should_encrypt) {
+                       state->smb2.should_encrypt = true;
+               }
        }
 
        if (state->smb2.should_encrypt) {
@@ -4636,4 +4639,16 @@ void smb2cli_tcon_set_values(struct smbXcli_tcon *tcon,
        tcon->smb2.flags = flags;
        tcon->smb2.capabilities = capabilities;
        tcon->smb2.maximal_access = maximal_access;
+
+       tcon->smb2.should_encrypt = false;
+
+       if (session == NULL) {
+               return;
+       }
+
+       tcon->smb2.should_encrypt = session->smb2.should_encrypt;
+
+       if (flags & SMB2_SHAREFLAG_ENCRYPT_DATA) {
+               tcon->smb2.should_encrypt = true;
+       }
 }