diff options
author | Stefan Metzmacher <metze@samba.org> | 2011-09-12 09:19:06 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2011-09-14 09:41:02 +0200 |
commit | abb24bf8e874d525382e994af7ae432212775153 (patch) | |
tree | 23df12b202ac814606a483711ca19ad48cb5cddd /source3/smbd/sesssetup.c | |
parent | c682472fdf28894858d14eb95b13cb4214847ecd (diff) | |
download | samba-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.c | 18 |
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 && |