summaryrefslogtreecommitdiff
path: root/source4/smb_server/smb_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/smb_server/smb_server.c')
-rw-r--r--source4/smb_server/smb_server.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source4/smb_server/smb_server.c b/source4/smb_server/smb_server.c
index 3385e88d4a..f439bce061 100644
--- a/source4/smb_server/smb_server.c
+++ b/source4/smb_server/smb_server.c
@@ -27,6 +27,7 @@
#include "smb_server/smb_server.h"
#include "lib/messaging/irpc.h"
#include "lib/stream/packet.h"
+#include "libcli/smb2/smb2.h"
static NTSTATUS smbsrv_recv_generic_request(void *private, DATA_BLOB blob)
{
@@ -56,6 +57,12 @@ static NTSTATUS smbsrv_recv_generic_request(void *private, DATA_BLOB blob)
NT_STATUS_NOT_OK_RETURN(status);
packet_set_callback(smb_conn->packet, smbsrv_recv_smb_request);
return smbsrv_recv_smb_request(smb_conn, blob);
+ case SMB2_MAGIC:
+ if (!lp_parm_bool(-1, "smbsrv", "enable smb2", False)) break;
+ status = smbsrv_init_smb2_connection(smb_conn);
+ NT_STATUS_NOT_OK_RETURN(status);
+ packet_set_callback(smb_conn->packet, smbsrv_recv_smb2_request);
+ return smbsrv_recv_smb2_request(smb_conn, blob);
}
DEBUG(2,("Invalid SMB packet: protocl prefix: 0x%08X\n", protocol_version));