From 3f9daa39fe84f9cbc36e7ecadf4d388d79e7010a Mon Sep 17 00:00:00 2001 From: Tal Aloni Date: Tue, 25 Jul 2017 13:42:43 +0300 Subject: [PATCH] Minor code refactoring --- .../Server/SMB2/ReadWriteResponseHelper.cs | 16 ++++++++++++++++ SMBLibrary/Server/SMBServer.SMB2.cs | 13 +------------ 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs b/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs index 810e9ff..bda6d75 100644 --- a/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs +++ b/SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs @@ -71,5 +71,21 @@ namespace SMBLibrary.Server.SMB2 response.Count = (uint)numberOfBytesWritten; return response; } + + internal static SMB2Command GetFlushResponse(FlushRequest request, ISMBShare share, SMB2ConnectionState state) + { + SMB2Session session = state.GetSession(request.Header.SessionID); + OpenFileObject openFile = session.GetOpenFileObject(request.FileId); + if (openFile == null) + { + return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); + } + NTStatus status = share.FileStore.FlushFileBuffers(openFile.Handle); + if (status != NTStatus.STATUS_SUCCESS) + { + return new ErrorResponse(request.CommandName, status); + } + return new FlushResponse(); + } } } diff --git a/SMBLibrary/Server/SMBServer.SMB2.cs b/SMBLibrary/Server/SMBServer.SMB2.cs index 5e2eb86..542f8e9 100644 --- a/SMBLibrary/Server/SMBServer.SMB2.cs +++ b/SMBLibrary/Server/SMBServer.SMB2.cs @@ -165,18 +165,7 @@ namespace SMBLibrary.Server } else if (command is FlushRequest) { - FlushRequest request = (FlushRequest)command; - OpenFileObject openFile = session.GetOpenFileObject(request.FileId); - if (openFile == null) - { - return new ErrorResponse(request.CommandName, NTStatus.STATUS_FILE_CLOSED); - } - NTStatus status = share.FileStore.FlushFileBuffers(openFile.Handle); - if (status != NTStatus.STATUS_SUCCESS) - { - return new ErrorResponse(request.CommandName, status); - } - return new FlushResponse(); + return ReadWriteResponseHelper.GetFlushResponse((FlushRequest)command, share, state); } else if (command is CloseRequest) {