diff --git a/SMBLibrary/Server/ConnectionState/ConnectionState.cs b/SMBLibrary/Server/ConnectionState/ConnectionState.cs index 55feeb3..dac086d 100644 --- a/SMBLibrary/Server/ConnectionState/ConnectionState.cs +++ b/SMBLibrary/Server/ConnectionState/ConnectionState.cs @@ -22,6 +22,8 @@ namespace SMBLibrary.Server private IPEndPoint m_clientEndPoint; private NBTConnectionReceiveBuffer m_receiveBuffer; private BlockingQueue m_sendQueue; + private DateTime m_creationDT; + private DateTime m_lastReceiveDT; private LogDelegate LogToServerHandler; public SMBDialect Dialect; public GSSContext AuthenticationContext; @@ -32,6 +34,8 @@ namespace SMBLibrary.Server m_clientEndPoint = clientEndPoint; m_receiveBuffer = new NBTConnectionReceiveBuffer(); m_sendQueue = new BlockingQueue(); + m_creationDT = DateTime.UtcNow; + m_lastReceiveDT = DateTime.UtcNow; LogToServerHandler = logToServerHandler; Dialect = SMBDialect.NotSet; } @@ -42,6 +46,8 @@ namespace SMBLibrary.Server m_clientEndPoint = state.ClientEndPoint; m_receiveBuffer = state.ReceiveBuffer; m_sendQueue = state.SendQueue; + m_creationDT = state.CreationDT; + m_lastReceiveDT = state.LastReceiveDT; LogToServerHandler = state.LogToServerHandler; Dialect = state.Dialect; } @@ -104,6 +110,26 @@ namespace SMBLibrary.Server } } + public DateTime CreationDT + { + get + { + return m_creationDT; + } + } + + public DateTime LastReceiveDT + { + get + { + return m_lastReceiveDT; + } + set + { + m_lastReceiveDT = value; + } + } + public string ConnectionIdentifier { get diff --git a/SMBLibrary/Server/SMBServer.cs b/SMBLibrary/Server/SMBServer.cs index ebf90f5..f506ff7 100644 --- a/SMBLibrary/Server/SMBServer.cs +++ b/SMBLibrary/Server/SMBServer.cs @@ -186,6 +186,7 @@ namespace SMBLibrary.Server return; } + state.LastReceiveDT = DateTime.UtcNow; NBTConnectionReceiveBuffer receiveBuffer = state.ReceiveBuffer; receiveBuffer.SetNumberOfBytesReceived(numberOfBytesReceived); ProcessConnectionBuffer(ref state);