Get the full viewer name even if it's (incorrectly) sent in the 'Channel' field

Recent versions of Firestorm and Singularity have started sending the viewer name in the 'Channel' field, leaving only their version number in the 'Viewer' field. So we need to search both of these fields for the viewer name.

This resolves http://opensimulator.org/mantis/view.php?id=6952
This commit is contained in:
Oren Hurvitz
2013-12-08 16:50:24 +02:00
parent 6734b94761
commit 921f0052f4
6 changed files with 48 additions and 13 deletions

View File

@@ -3413,6 +3413,7 @@ namespace OpenSim.Region.Framework.Scenes
// TeleportFlags.ViaLandmark | TeleportFlags.ViaLocation | TeleportFlags.ViaLandmark | TeleportFlags.Default - Regular Teleport
// Don't disable this log message - it's too helpful
string curViewer = Util.GetViewerName(acd);
m_log.DebugFormat(
"[SCENE]: Region {0} told of incoming {1} agent {2} {3} {4} (circuit code {5}, IP {6}, viewer {7}, teleportflags ({8}), position {9})",
RegionInfo.RegionName,
@@ -3422,7 +3423,7 @@ namespace OpenSim.Region.Framework.Scenes
acd.AgentID,
acd.circuitcode,
acd.IPAddress,
acd.Viewer,
curViewer,
((TPFlags)teleportFlags).ToString(),
acd.startpos
);
@@ -3442,7 +3443,7 @@ namespace OpenSim.Region.Framework.Scenes
{
foreach (string viewer in m_AllowedViewers)
{
if (viewer == acd.Viewer.Substring(0, viewer.Length).Trim().ToLower())
if (viewer == curViewer.Substring(0, viewer.Length).Trim().ToLower())
{
ViewerDenied = false;
break;
@@ -3459,7 +3460,7 @@ namespace OpenSim.Region.Framework.Scenes
{
foreach (string viewer in m_BannedViewers)
{
if (viewer == acd.Viewer.Substring(0, viewer.Length).Trim().ToLower())
if (viewer == curViewer.Substring(0, viewer.Length).Trim().ToLower())
{
ViewerDenied = true;
break;
@@ -3471,7 +3472,7 @@ namespace OpenSim.Region.Framework.Scenes
{
m_log.DebugFormat(
"[SCENE]: Access denied for {0} {1} using {2}",
acd.firstname, acd.lastname, acd.Viewer);
acd.firstname, acd.lastname, curViewer);
reason = "Access denied, your viewer is banned by the region owner";
return false;
}

View File

@@ -848,7 +848,7 @@ namespace OpenSim.Region.Framework.Scenes
public string Viewer
{
get { return m_scene.AuthenticateHandler.GetAgentCircuitData(ControllingClient.CircuitCode).Viewer; }
get { return Util.GetViewerName(m_scene.AuthenticateHandler.GetAgentCircuitData(ControllingClient.CircuitCode)); }
}
#endregion