summaryrefslogtreecommitdiff
path: root/source3/smbd/trans2.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2007-03-20 01:17:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:18:43 -0500
commit296dcbac5897ad208c890720d3356a3ddc5f7794 (patch)
tree3fe4d1926ba57b0517a1b09966ca31a21c30c1a1 /source3/smbd/trans2.c
parentb4f19aea18fd6406c56b00c1410ef842720ca4d2 (diff)
downloadsamba-296dcbac5897ad208c890720d3356a3ddc5f7794.tar.gz
samba-296dcbac5897ad208c890720d3356a3ddc5f7794.tar.bz2
samba-296dcbac5897ad208c890720d3356a3ddc5f7794.zip
r21882: The server part of the code has to use an AUTH_NTLMSSP struct,
not just an NTLMSSP - grr. This complicates the re-use of common client and server code but I think I've got it right. Not turned on of valgrinded yet, but you can see it start to take shape ! Jeremy. (This used to be commit 60fc9c0aedf42dcd9df2ef9f1df07eaf3bca9bce)
Diffstat (limited to 'source3/smbd/trans2.c')
-rw-r--r--source3/smbd/trans2.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index deb5db1baf..25fd6621e9 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -2758,6 +2758,33 @@ cap_low = 0x%x, cap_high = 0x%x\n",
}
break;
}
+ case SMB_REQUEST_TRANSPORT_ENCRYPTION:
+ {
+ NTSTATUS status;
+ size_t data_len = total_data;
+
+ if (!lp_unix_extensions()) {
+ return ERROR_NT(NT_STATUS_INVALID_LEVEL);
+ }
+
+ DEBUG( 4,("call_trans2setfsinfo: request transport encrption.\n"));
+
+ status = srv_request_encryption_setup((unsigned char **)&pdata, &data_len);
+
+ if (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
+ error_packet_set(outbuf, 0, 0, status, __LINE__,__FILE__);
+ } else if (!NT_STATUS_IS_OK(status)) {
+ return ERROR_NT(status);
+ }
+
+ send_trans2_replies( outbuf, bufsize, params, 0, pdata, data_len, max_data_bytes);
+
+ if (NT_STATUS_IS_OK(status)) {
+ /* Server-side transport encryption is now *on*. */
+ srv_encryption_start();
+ }
+ return -1;
+ }
case SMB_FS_QUOTA_INFORMATION:
{
files_struct *fsp = NULL;