diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index c4e569d6ee..50fbe0ade9 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -1189,6 +1189,7 @@ namespace OpenSim.Framework.Servers.HttpServer OSD llsdResponse = null; bool LegacyLLSDLoginLibOMV = (requestBody.Contains("passwd") && requestBody.Contains("mac") && requestBody.Contains("viewer_digest")); + bool nohandler = false; if (requestBody.Length == 0) // Get Request @@ -1227,17 +1228,19 @@ namespace OpenSim.Framework.Servers.HttpServer { // Oops, no handler for this.. give em the failed message llsdResponse = GenerateNoLLSDHandlerResponse(); + nohandler = true; } } } else { llsdResponse = GenerateNoLLSDHandlerResponse(); + nohandler = true; } byte[] buffer = new byte[0]; - if (llsdResponse.ToString() == "shutdown404!") + if (llsdResponse.ToString() == "shutdown404!" || nohandler) { response.ContentType = "text/plain"; response.StatusCode = 404; diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 59c2a5a18c..248fec700f 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs @@ -1627,6 +1627,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP bool ready = false; while (!ready && count-- > 0) { + // Let's make sure there is an active client attached to a scene presence, + // otherwise there won't be any handlers for this packet if (m_scene.TryGetClient(endPoint, out client) && client.IsActive && client.SceneAgent != null) { LLClientView llClientView = (LLClientView)client;