make sure udpserver client logout is called and is last

This commit is contained in:
UbitUmarov
2026-03-26 02:14:30 +00:00
parent 8fd808e8f4
commit 130b817c37
2 changed files with 13 additions and 4 deletions

View File

@@ -12201,7 +12201,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
var lrp = (LogoutRequestPacket)packet;
m_log.Info($"[CLIENT]: Got a logout request for {c.Name} in {c.Scene.Name}");
c.OnLogout?.Invoke(c);
try
{
c.OnLogout?.Invoke(c);
}
catch { }
c.UDPServer.LogoutHandler(c);
}
/// <summary>
@@ -12212,7 +12217,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected virtual void Logout(IClientAPI client)
{
m_log.Info($"[CLIENT]: Got a logout request for {Name} in {Scene.Name}");
OnLogout?.Invoke(client);
try
{
OnLogout?.Invoke(client);
}
catch { }
UDPServer.LogoutHandler(client);
}
/// <summary>

View File

@@ -1732,7 +1732,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
LLUDPClient udpClient = new(this, ThrottleRates, Throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
client = new LLClientView(Scene, this, udpClient, sessionInfo, agentID, sessionID, circuitCode);
client.OnLogout += LogoutHandler;
client.DebugPacketLevel = DefaultClientPacketDebugLevel;
((LLClientView)client).DisableFacelights = m_disableFacelights;
@@ -1948,7 +1947,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion
protected void LogoutHandler(IClientAPI client)
public void LogoutHandler(IClientAPI client)
{
client.SendLogoutPacket();