When LLSD handlers are not found, the server should return a 404 instead of a valid response saying 'No handler registered for LLSD Requests'
parent
01561166aa
commit
9c1ec98415
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue