Maintain connection creation time and last receive time

This commit is contained in:
Tal Aloni 2017-12-08 16:12:07 +02:00
parent eb5989eb94
commit 125df899cb
2 changed files with 27 additions and 0 deletions

View file

@ -22,6 +22,8 @@ namespace SMBLibrary.Server
private IPEndPoint m_clientEndPoint; private IPEndPoint m_clientEndPoint;
private NBTConnectionReceiveBuffer m_receiveBuffer; private NBTConnectionReceiveBuffer m_receiveBuffer;
private BlockingQueue<SessionPacket> m_sendQueue; private BlockingQueue<SessionPacket> m_sendQueue;
private DateTime m_creationDT;
private DateTime m_lastReceiveDT;
private LogDelegate LogToServerHandler; private LogDelegate LogToServerHandler;
public SMBDialect Dialect; public SMBDialect Dialect;
public GSSContext AuthenticationContext; public GSSContext AuthenticationContext;
@ -32,6 +34,8 @@ namespace SMBLibrary.Server
m_clientEndPoint = clientEndPoint; m_clientEndPoint = clientEndPoint;
m_receiveBuffer = new NBTConnectionReceiveBuffer(); m_receiveBuffer = new NBTConnectionReceiveBuffer();
m_sendQueue = new BlockingQueue<SessionPacket>(); m_sendQueue = new BlockingQueue<SessionPacket>();
m_creationDT = DateTime.UtcNow;
m_lastReceiveDT = DateTime.UtcNow;
LogToServerHandler = logToServerHandler; LogToServerHandler = logToServerHandler;
Dialect = SMBDialect.NotSet; Dialect = SMBDialect.NotSet;
} }
@ -42,6 +46,8 @@ namespace SMBLibrary.Server
m_clientEndPoint = state.ClientEndPoint; m_clientEndPoint = state.ClientEndPoint;
m_receiveBuffer = state.ReceiveBuffer; m_receiveBuffer = state.ReceiveBuffer;
m_sendQueue = state.SendQueue; m_sendQueue = state.SendQueue;
m_creationDT = state.CreationDT;
m_lastReceiveDT = state.LastReceiveDT;
LogToServerHandler = state.LogToServerHandler; LogToServerHandler = state.LogToServerHandler;
Dialect = state.Dialect; 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 public string ConnectionIdentifier
{ {
get get

View file

@ -186,6 +186,7 @@ namespace SMBLibrary.Server
return; return;
} }
state.LastReceiveDT = DateTime.UtcNow;
NBTConnectionReceiveBuffer receiveBuffer = state.ReceiveBuffer; NBTConnectionReceiveBuffer receiveBuffer = state.ReceiveBuffer;
receiveBuffer.SetNumberOfBytesReceived(numberOfBytesReceived); receiveBuffer.SetNumberOfBytesReceived(numberOfBytesReceived);
ProcessConnectionBuffer(ref state); ProcessConnectionBuffer(ref state);