diff options
Diffstat (limited to 'libcli')
-rw-r--r-- | libcli/smb/smbXcli_base.c | 21 | ||||
-rw-r--r-- | libcli/smb/smbXcli_base.h | 3 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c index e720a500fa..67b44d93b4 100644 --- a/libcli/smb/smbXcli_base.c +++ b/libcli/smb/smbXcli_base.c @@ -186,6 +186,7 @@ struct smbXcli_tcon { uint32_t flags; uint32_t capabilities; uint32_t maximal_access; + bool should_sign; bool should_encrypt; } smb2; }; @@ -2694,6 +2695,9 @@ struct tevent_req *smb2cli_req_create(TALLOC_CTX *mem_ctx, if (tcon) { tid = tcon->smb2.tcon_id; + if (tcon->smb2.should_sign) { + state->smb2.should_sign = true; + } if (tcon->smb2.should_encrypt) { state->smb2.should_encrypt = true; } @@ -5214,12 +5218,14 @@ void smb2cli_tcon_set_values(struct smbXcli_tcon *tcon, tcon->smb2.capabilities = capabilities; tcon->smb2.maximal_access = maximal_access; + tcon->smb2.should_sign = false; tcon->smb2.should_encrypt = false; if (session == NULL) { return; } + tcon->smb2.should_sign = session->smb2->should_sign; tcon->smb2.should_encrypt = session->smb2->should_encrypt; if (flags & SMB2_SHAREFLAG_ENCRYPT_DATA) { @@ -5227,6 +5233,21 @@ void smb2cli_tcon_set_values(struct smbXcli_tcon *tcon, } } +void smb2cli_tcon_should_sign(struct smbXcli_tcon *tcon, + bool should_sign) +{ + tcon->smb2.should_sign = should_sign; +} + +bool smb2cli_tcon_is_signing_on(struct smbXcli_tcon *tcon) +{ + if (tcon->smb2.should_encrypt) { + return true; + } + + return tcon->smb2.should_sign; +} + void smb2cli_tcon_should_encrypt(struct smbXcli_tcon *tcon, bool should_encrypt) { diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h index ffe720f3a0..bb3647e53d 100644 --- a/libcli/smb/smbXcli_base.h +++ b/libcli/smb/smbXcli_base.h @@ -420,6 +420,9 @@ void smb2cli_tcon_set_values(struct smbXcli_tcon *tcon, uint32_t flags, uint32_t capabilities, uint32_t maximal_access); +void smb2cli_tcon_should_sign(struct smbXcli_tcon *tcon, + bool should_sign); +bool smb2cli_tcon_is_signing_on(struct smbXcli_tcon *tcon); void smb2cli_tcon_should_encrypt(struct smbXcli_tcon *tcon, bool should_encrypt); bool smb2cli_tcon_is_encryption_on(struct smbXcli_tcon *tcon); |