Преглед на файлове

Minor logging improvement

Tal Aloni преди 7 години
родител
ревизия
8b073010b2
променени са 3 файла, в които са добавени 9 реда и са изтрити 0 реда
  1. 1 0
      SMBLibrary/Enums/NTStatus.cs
  2. 5 0
      SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs
  3. 3 0
      SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs

+ 1 - 0
SMBLibrary/Enums/NTStatus.cs

@@ -19,6 +19,7 @@ namespace SMBLibrary
         STATUS_INVALID_PARAMETER = 0xC000000D,
         STATUS_NO_SUCH_DEVICE = 0xC000000E,
         STATUS_NO_SUCH_FILE = 0xC000000F,
+        STATUS_END_OF_FILE = 0xC0000011,
         STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016,
         STATUS_ACCESS_DENIED = 0xC0000022, // The user is not authorized to access the resource.
         STATUS_BUFFER_TOO_SMALL = 0xC0000023,

+ 5 - 0
SMBLibrary/Server/SMB1/ReadWriteResponseHelper.cs

@@ -41,6 +41,7 @@ namespace SMBLibrary.Server.SMB1
             header.Status = share.FileStore.ReadFile(out data, openFile.Handle, request.ReadOffsetInBytes, request.CountOfBytesToRead);
             if (header.Status != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Read from '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, header.Status);
                 return new ErrorResponse(request.CommandName);
             }
 
@@ -79,6 +80,7 @@ namespace SMBLibrary.Server.SMB1
             header.Status = share.FileStore.ReadFile(out data, openFile.Handle, (long)request.Offset, (int)maxCount);
             if (header.Status != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Read from '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, header.Status);
                 return new ErrorResponse(request.CommandName);
             }
 
@@ -116,6 +118,7 @@ namespace SMBLibrary.Server.SMB1
             header.Status = share.FileStore.WriteFile(out numberOfBytesWritten, openFile.Handle, request.WriteOffsetInBytes, request.Data);
             if (header.Status != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Write to '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, header.Status);
                 return new ErrorResponse(request.CommandName);
             }
             WriteResponse response = new WriteResponse();
@@ -147,6 +150,7 @@ namespace SMBLibrary.Server.SMB1
             header.Status = share.FileStore.WriteFile(out numberOfBytesWritten, openFile.Handle, (long)request.Offset, request.Data);
             if (header.Status != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Write to '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, header.Status);
                 return new ErrorResponse(request.CommandName);
             }
             WriteAndXResponse response = new WriteAndXResponse();
@@ -179,6 +183,7 @@ namespace SMBLibrary.Server.SMB1
             header.Status = share.FileStore.FlushFileBuffers(openFile.Handle);
             if (header.Status != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Flush '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, header.Status);
                 return new ErrorResponse(request.CommandName);
             }
             return new FlushResponse();

+ 3 - 0
SMBLibrary/Server/SMB2/ReadWriteResponseHelper.cs

@@ -37,6 +37,7 @@ namespace SMBLibrary.Server.SMB2
             NTStatus readStatus = share.FileStore.ReadFile(out data, openFile.Handle, (long)request.Offset, (int)request.ReadLength);
             if (readStatus != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Read from '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, readStatus);
                 return new ErrorResponse(request.CommandName, readStatus);
             }
             ReadResponse response = new ReadResponse();
@@ -67,6 +68,7 @@ namespace SMBLibrary.Server.SMB2
             NTStatus writeStatus = share.FileStore.WriteFile(out numberOfBytesWritten, openFile.Handle, (long)request.Offset, request.Data);
             if (writeStatus != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Write to '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, writeStatus);
                 return new ErrorResponse(request.CommandName, writeStatus);
             }
             WriteResponse response = new WriteResponse();
@@ -86,6 +88,7 @@ namespace SMBLibrary.Server.SMB2
             NTStatus status = share.FileStore.FlushFileBuffers(openFile.Handle);
             if (status != NTStatus.STATUS_SUCCESS)
             {
+                state.LogToServer(Severity.Verbose, "Flush '{0}{1}' failed. NTStatus: {2}.", share.Name, openFile.Path, status);
                 return new ErrorResponse(request.CommandName, status);
             }
             return new FlushResponse();