summaryrefslogtreecommitdiff
path: root/source3/smbd/sesssetup.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2011-09-12 09:19:06 +0200
committerStefan Metzmacher <metze@samba.org>2011-09-14 09:41:02 +0200
commitabb24bf8e874d525382e994af7ae432212775153 (patch)
tree23df12b202ac814606a483711ca19ad48cb5cddd /source3/smbd/sesssetup.c
parentc682472fdf28894858d14eb95b13cb4214847ecd (diff)
downloadsamba-abb24bf8e874d525382e994af7ae432212775153.tar.gz
samba-abb24bf8e874d525382e994af7ae432212775153.tar.bz2
samba-abb24bf8e874d525382e994af7ae432212775153.zip
s3:smbd: make use of better SMB signing negotiation
metze Autobuild-User: Stefan Metzmacher <metze@samba.org> Autobuild-Date: Wed Sep 14 09:41:02 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/smbd/sesssetup.c')
-rw-r--r--source3/smbd/sesssetup.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c
index 6dc8609071..28ae24e95f 100644
--- a/source3/smbd/sesssetup.c
+++ b/source3/smbd/sesssetup.c
@@ -1306,6 +1306,8 @@ void reply_sesssetup_and_X(struct smb_request *req)
struct smbd_server_connection *sconn = req->sconn;
bool doencrypt = sconn->smb1.negprot.encrypted_passwords;
+ bool signing_allowed = false;
+ bool signing_mandatory = false;
START_PROFILE(SMBsesssetupX);
@@ -1315,6 +1317,22 @@ void reply_sesssetup_and_X(struct smb_request *req)
DEBUG(3,("wct=%d flg2=0x%x\n", req->wct, req->flags2));
+ if (req->flags2 & FLAGS2_SMB_SECURITY_SIGNATURES) {
+ signing_allowed = true;
+ }
+ if (req->flags2 & FLAGS2_SMB_SECURITY_SIGNATURES_REQUIRED) {
+ signing_mandatory = true;
+ }
+
+ /*
+ * We can call srv_set_signing_negotiated() each time.
+ * It finds out when it needs to turn into a noop
+ * itself.
+ */
+ srv_set_signing_negotiated(req->sconn,
+ signing_allowed,
+ signing_mandatory);
+
/* a SPNEGO session setup has 12 command words, whereas a normal
NT1 session setup has 13. See the cifs spec. */
if (req->wct == 12 &&