summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-08-03 08:44:39 +0200
committerStefan Metzmacher <metze@samba.org>2012-08-04 14:28:04 +0200
commit401860cab6ab3d88659361bd333f6667da071d7b (patch)
treeef68a112b9e1fd6c4430a3d7d85122d341a298db /source3/smbd
parentff75fd9eda805d0d937b442f8221be89504131eb (diff)
downloadsamba-401860cab6ab3d88659361bd333f6667da071d7b.tar.gz
samba-401860cab6ab3d88659361bd333f6667da071d7b.tar.bz2
samba-401860cab6ab3d88659361bd333f6667da071d7b.zip
s3:smbd: add support for SMB_EXTENDED_SIGNATURES in SMBtconX
metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Sat Aug 4 14:28:04 CEST 2012 on sn-devel-104
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/reply.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 94c18b0c65..1b4a1620d6 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -42,6 +42,7 @@
#include "smbprofile.h"
#include "../lib/tsocket/tsocket.h"
#include "lib/tevent_wait.h"
+#include "libcli/smb/smb_signing.h"
/****************************************************************************
Ensure we check the path in *exactly* the same way as W2K for a findfirst/findnext
@@ -725,6 +726,7 @@ void reply_tcon_and_X(struct smb_request *req)
struct smbXsrv_session *session = NULL;
NTTIME now = timeval_to_nttime(&req->request_time);
bool session_key_updated = false;
+ uint16_t optional_support = 0;
struct smbd_server_connection *sconn = req->sconn;
START_PROFILE(SMBtconX);
@@ -874,6 +876,13 @@ void reply_tcon_and_X(struct smb_request *req)
return;
}
+ if (tcon_flags & TCONX_FLAG_EXTENDED_SIGNATURES) {
+ smb_key_derivation(x->global->application_key.data,
+ x->global->application_key.length,
+ x->global->application_key.data);
+ optional_support |= SMB_EXTENDED_SIGNATURES;
+ }
+
/*
* Place the application key into the session_info
*/
@@ -924,7 +933,6 @@ void reply_tcon_and_X(struct smb_request *req)
} else {
/* NT sets the fstype of IPC$ to the null string */
const char *fstype = IS_IPC(conn) ? "" : lp_fstype(ctx, SNUM(conn));
- uint16_t optional_support = 0;
if (tcon_flags & TCONX_FLAG_EXTENDED_RESPONSE) {
/* Return permissions. */