All matching opened files will now be closed during logoff

This commit is contained in:
Tal Aloni 2017-03-04 14:12:02 +02:00
parent cff82dd4b8
commit 9141665ac6
4 changed files with 38 additions and 2 deletions

View file

@ -79,7 +79,13 @@ namespace SMBLibrary.Server
public void RemoveSession(ushort userID)
{
m_sessions.Remove(userID);
SMB1Session session;
m_sessions.TryGetValue(userID, out session);
if (session != null)
{
session.Close();
m_sessions.Remove(userID);
}
}
/// <summary>

View file

@ -152,6 +152,18 @@ namespace SMBLibrary.Server
m_openSearches.Remove(searchHandle);
}
/// <summary>
/// Free all resources used by this session
/// </summary>
public void Close()
{
List<ushort> treeIDList = new List<ushort>(m_connectedTrees.Keys);
foreach (ushort treeID in treeIDList)
{
DisconnectTree(treeID);
}
}
public ushort UserID
{
get

View file

@ -60,7 +60,13 @@ namespace SMBLibrary.Server
public void RemoveSession(ulong sessionID)
{
m_sessions.Remove(sessionID);
SMB2Session session;
m_sessions.TryGetValue(sessionID, out session);
if (session != null)
{
session.Close();
m_sessions.Remove(sessionID);
}
}
public void ClearSessions()

View file

@ -152,6 +152,18 @@ namespace SMBLibrary.Server
m_openSearches.Remove(fileID);
}
/// <summary>
/// Free all resources used by this session
/// </summary>
public void Close()
{
List<uint> treeIDList = new List<uint>(m_connectedTrees.Keys);
foreach (uint treeID in treeIDList)
{
DisconnectTree(treeID);
}
}
public byte[] SessionKey
{
get