From 22d4c52ffc374e167cb674e0e20815615d8a6927 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Sat, 24 Nov 2012 03:15:24 +0000
Subject: Consistenly make NUnit test cases inherit from OpenSimTestCase which
automatically turns off any logging enabled between tests
---
.../Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
index d604cf6..ed8ec16 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
@@ -44,7 +44,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.ClientStack.Linden.Tests
{
[TestFixture]
- public class EventQueueTests
+ public class EventQueueTests : OpenSimTestCase
{
private TestScene m_scene;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs
index 5fcf376..7d9f581 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/LLImageManagerTests.cs
@@ -43,7 +43,7 @@ using OpenSim.Tests.Common.Mock;
namespace OpenSim.Region.ClientStack.LindenUDP.Tests
{
[TestFixture]
- public class LLImageManagerTests
+ public class LLImageManagerTests : OpenSimTestCase
{
private AssetBase m_testImageAsset;
private Scene scene;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs
index 0f88ec6..5f73a94 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/Tests/PacketHandlerTests.cs
@@ -39,7 +39,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP.Tests
/// Tests for the LL packet handler
///
[TestFixture]
- public class PacketHandlerTests
+ public class PacketHandlerTests : OpenSimTestCase
{
// [Test]
// ///
--
cgit v1.1
From 0b93a68030cb498896c296654004d3dc2270bc4b Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 13 Dec 2012 23:32:28 +0000
Subject: minor: add some more detail to the logging if an LLClientView fails
to process a packet
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 4fd81fa..504df40 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -11864,11 +11864,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (logPacket)
m_log.DebugFormat(
"[CLIENT]: PACKET IN from {0} ({1}) in {2} - {3}",
- Name, SceneAgent.IsChildAgent ? "child" : "root ", m_scene.RegionInfo.RegionName, packet.Type);
+ Name, SceneAgent.IsChildAgent ? "child" : "root ", Scene.Name, packet.Type);
}
if (!ProcessPacketMethod(packet))
- m_log.Warn("[CLIENT]: unhandled packet " + packet.Type);
+ m_log.WarnFormat(
+ "[CLIENT]: Unhandled packet {0} from {1} ({2}) in {3}. Ignoring.",
+ packet.Type, Name, SceneAgent.IsChildAgent ? "child" : "root ", Scene.Name);
}
private static PrimitiveBaseShape GetShapeFromAddPacket(ObjectAddPacket addPacket)
--
cgit v1.1
From ae67435146d65e1241c15677952f7d4a05ee794c Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 19 Dec 2012 01:51:30 +0000
Subject: Disable UDPPacketBuffer pooling for now to resolve an issue on
Windows of interference between incoming packets.
On Windows, concurrent multi-threaded processing of inbound UDP somehow allows different data input processing to interfere with each other.
Possibly the endpoint reference is being switched, though I don't yet know the mechanism. Not seen on Mono.
Also resolveable by setting RecyclePackets = false or RecycleBaseUDPPackets = false in [PacketPool]
Or async_packet_handling = false in [ClientStack.LindenUDP]
For now, will simply disable this particular pooling though will revisit this issue.
In response to http://opensimulator.org/mantis/view.php?id=6468
---
OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs
index 3f7ca2b..f143c32 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/OpenSimUDPBase.cs
@@ -208,9 +208,12 @@ namespace OpenMetaverse
{
UDPPacketBuffer buf;
- if (UsePools)
- buf = Pool.GetObject();
- else
+ // FIXME: Disabled for now as this causes issues with reused packet objects interfering with each other
+ // on Windows with m_asyncPacketHandling = true, though this has not been seen on Linux.
+ // Possibly some unexpected issue with fetching UDP data concurrently with multiple threads. Requires more investigation.
+// if (UsePools)
+// buf = Pool.GetObject();
+// else
buf = new UDPPacketBuffer();
if (IsRunningInbound)
@@ -291,8 +294,8 @@ namespace OpenMetaverse
catch (ObjectDisposedException) { }
finally
{
- if (UsePools)
- Pool.ReturnObject(buffer);
+// if (UsePools)
+// Pool.ReturnObject(buffer);
// Synchronous mode waits until the packet callback completes
// before starting the receive to fetch another packet
--
cgit v1.1
From 2ac96dd1813fa90907ef589b98a9bf68f0ab2e9f Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 8 Jan 2013 22:52:14 +0000
Subject: Add the new UpdateAgentInformation cap to make maturity on more
recent viewers work.
---
.../Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index cc69645..a534522 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -96,8 +96,8 @@ namespace OpenSim.Region.ClientStack.Linden
// private static readonly string m_fetchInventoryPath = "0006/";
private static readonly string m_copyFromNotecardPath = "0007/";
// private static readonly string m_remoteParcelRequestPath = "0009/";// This is in the LandManagementModule.
-
-
+ private static readonly string m_UpdateAgentInformationPath = "0500/";
+
// These are callbacks which will be setup by the scene so that we can update scene data when we
// receive capability calls
public NewInventoryItem AddNewInventoryItem = null;
@@ -204,6 +204,8 @@ namespace OpenSim.Region.ClientStack.Linden
m_HostCapsObj.RegisterHandler("UpdateNotecardAgentInventory", req);
m_HostCapsObj.RegisterHandler("UpdateScriptAgentInventory", req);
m_HostCapsObj.RegisterHandler("UpdateScriptAgent", req);
+ IRequestHandler UpdateAgentInformationHandler = new RestStreamHandler("POST", capsBase + m_UpdateAgentInformationPath, UpdateAgentInformation);
+ m_HostCapsObj.RegisterHandler("UpdateAgentInformation", UpdateAgentInformationHandler);
m_HostCapsObj.RegisterHandler(
"CopyInventoryFromNotecard",
@@ -855,6 +857,22 @@ namespace OpenSim.Region.ClientStack.Linden
response["int_response_code"] = 200;
return LLSDHelpers.SerialiseLLSDReply(response);
}
+
+ public string UpdateAgentInformation(string request, string path,
+ string param, IOSHttpRequest httpRequest,
+ IOSHttpResponse httpResponse)
+ {
+ OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
+ OSDMap resp = new OSDMap();
+
+ OSDMap accessPrefs = new OSDMap();
+ accessPrefs["max"] = "A";
+
+ resp["access_prefs"] = accessPrefs;
+
+ string response = OSDParser.SerializeLLSDXmlString(resp);
+ return response;
+ }
}
public class AssetUploader
--
cgit v1.1
From 72cc94cfbc16515515d33e4f130d3ee5f2802866 Mon Sep 17 00:00:00 2001
From: dahlia
Date: Thu, 10 Jan 2013 20:21:18 -0800
Subject: add some sanity checking to HandleAgentRequestSit handler
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 504df40..a8517e6 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -6428,8 +6428,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit;
if (handlerAgentRequestSit != null)
- handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
- agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
+ if (!(agentRequestSit.AgentData == null
+ || agentRequestSit.TargetObject == null
+ || agentRequestSit.TargetObject.TargetID == null
+ || agentRequestSit.TargetObject.Offset == null))
+ {
+ var sp = m_scene.GetScenePresence(agentRequestSit.AgentData.AgentID);
+ if (sp == null || sp.ParentID != 0) // ignore packet if agent is already sitting
+ return true;
+
+ handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
+ agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
+ }
}
return true;
}
--
cgit v1.1
From 055b8a2d58a17d5dbc6cdb7f22077e6268578905 Mon Sep 17 00:00:00 2001
From: dahlia
Date: Mon, 14 Jan 2013 22:24:24 -0800
Subject: move resit fix to ScenePresence.cs and allow for requesting sit on
objects other than the object currently sat on
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 15 +++------------
1 file changed, 3 insertions(+), 12 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index a8517e6..967fa44 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -6427,19 +6427,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion
AgentRequestSit handlerAgentRequestSit = OnAgentRequestSit;
- if (handlerAgentRequestSit != null)
- if (!(agentRequestSit.AgentData == null
- || agentRequestSit.TargetObject == null
- || agentRequestSit.TargetObject.TargetID == null
- || agentRequestSit.TargetObject.Offset == null))
- {
- var sp = m_scene.GetScenePresence(agentRequestSit.AgentData.AgentID);
- if (sp == null || sp.ParentID != 0) // ignore packet if agent is already sitting
- return true;
- handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
- agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
- }
+ if (handlerAgentRequestSit != null)
+ handlerAgentRequestSit(this, agentRequestSit.AgentData.AgentID,
+ agentRequestSit.TargetObject.TargetID, agentRequestSit.TargetObject.Offset);
}
return true;
}
--
cgit v1.1
From 5563a8916ed5c78f91dccb668453f5782ab19532 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Wed, 16 Jan 2013 16:45:18 +0000
Subject: Complete removal of the now unused state queue
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs | 17 +++--------------
2 files changed, 4 insertions(+), 15 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index a8517e6..77acacf 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -1588,7 +1588,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (localIDs.Count == 1 && m_scene.GetScenePresence(localIDs[0]) != null)
{
- OutPacket(kill, ThrottleOutPacketType.State);
+ OutPacket(kill, ThrottleOutPacketType.Task);
}
else
{
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
index 8963756..621e0fd 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs
@@ -278,7 +278,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public string GetStats()
{
return string.Format(
- "{0,7} {1,7} {2,7} {3,9} {4,7} {5,7} {6,7} {7,7} {8,7} {9,8} {10,7} {11,7} {12,7}",
+ "{0,7} {1,7} {2,7} {3,9} {4,7} {5,7} {6,7} {7,7} {8,7} {9,8} {10,7} {11,7}",
Util.EnvironmentTickCountSubtract(TickLastPacketReceived),
PacketsReceived,
PacketsSent,
@@ -290,8 +290,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_packetOutboxes[(int)ThrottleOutPacketType.Cloud].Count,
m_packetOutboxes[(int)ThrottleOutPacketType.Task].Count,
m_packetOutboxes[(int)ThrottleOutPacketType.Texture].Count,
- m_packetOutboxes[(int)ThrottleOutPacketType.Asset].Count,
- m_packetOutboxes[(int)ThrottleOutPacketType.State].Count);
+ m_packetOutboxes[(int)ThrottleOutPacketType.Asset].Count);
}
public void SendPacketStats()
@@ -337,8 +336,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
int task = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f); pos += 4;
int texture = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f); pos += 4;
int asset = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f);
- // State is a subcategory of task that we allocate a percentage to
- int state = 0;
// Make sure none of the throttles are set below our packet MTU,
// otherwise a throttle could become permanently clogged
@@ -375,9 +372,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
bucket = m_throttleCategories[(int)ThrottleOutPacketType.Task];
bucket.RequestedDripRate = task;
- bucket = m_throttleCategories[(int)ThrottleOutPacketType.State];
- bucket.RequestedDripRate = state;
-
bucket = m_throttleCategories[(int)ThrottleOutPacketType.Texture];
bucket.RequestedDripRate = texture;
@@ -678,9 +672,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
Texture = 5,
/// Non-texture assets
Asset = 6,
- /// Avatar and primitive data
- /// This is a sub-category of Task
- State = 7,
*/
switch (category)
@@ -697,11 +688,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return ThrottleOutPacketTypeFlags.Texture;
case ThrottleOutPacketType.Asset:
return ThrottleOutPacketTypeFlags.Asset;
- case ThrottleOutPacketType.State:
- return ThrottleOutPacketTypeFlags.State;
default:
return 0;
}
}
}
-}
\ No newline at end of file
+}
--
cgit v1.1
From 9d1989e64fa460646f9a3d52d4024c3b56888617 Mon Sep 17 00:00:00 2001
From: teravus
Date: Tue, 22 Jan 2013 18:49:50 -0500
Subject: * Handle a NRE with Baked Textures that may result in a failed
appearance. This may be an issue, or it may be a symptom.
---
.../Linden/Caps/UploadBakedTextureModule.cs | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs
index 6bed95f..eca576d 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/UploadBakedTextureModule.cs
@@ -190,8 +190,15 @@ namespace OpenSim.Region.ClientStack.Linden
{
if (textureEntry.FaceTextures.Length > cacheItems[i].TextureIndex)
{
- cacheItems[i].TextureID =
- textureEntry.FaceTextures[cacheItems[i].TextureIndex].TextureID;
+ Primitive.TextureEntryFace face = textureEntry.FaceTextures[cacheItems[i].TextureIndex];
+ if (face == null)
+ {
+ textureEntry.CreateFace(cacheItems[i].TextureIndex);
+ textureEntry.FaceTextures[cacheItems[i].TextureIndex].TextureID =
+ AppearanceManager.DEFAULT_AVATAR_TEXTURE;
+ continue;
+ }
+ cacheItems[i].TextureID =face.TextureID;
if (m_scene.AssetService != null)
cacheItems[i].TextureAsset =
m_scene.AssetService.GetCached(cacheItems[i].TextureID.ToString());
@@ -213,8 +220,16 @@ namespace OpenSim.Region.ClientStack.Linden
{
if (textureEntry.FaceTextures.Length > cacheItems[i].TextureIndex)
{
+ Primitive.TextureEntryFace face = textureEntry.FaceTextures[cacheItems[i].TextureIndex];
+ if (face == null)
+ {
+ textureEntry.CreateFace(cacheItems[i].TextureIndex);
+ textureEntry.FaceTextures[cacheItems[i].TextureIndex].TextureID =
+ AppearanceManager.DEFAULT_AVATAR_TEXTURE;
+ continue;
+ }
cacheItems[i].TextureID =
- textureEntry.FaceTextures[cacheItems[i].TextureIndex].TextureID;
+ face.TextureID;
}
else
{
--
cgit v1.1
From 7c4e0ff03c5ba9331feb777247594e94fc0f7ac1 Mon Sep 17 00:00:00 2001
From: teravus
Date: Wed, 30 Jan 2013 06:22:05 -0500
Subject: * Adds a satisfying angular roll when an avatar is flying and
turning. (General, not physics). Makes flying not feel as stiff.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 0ccd69a..88b64f5 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4893,7 +4893,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// may improve movement smoothness.
// acceleration = new Vector3(1, 0, 0);
- angularVelocity = Vector3.Zero;
+ angularVelocity = presence.AngularVelocity;
rotation = presence.Rotation;
if (sendTexture)
--
cgit v1.1
From cc1781926b4c49c72977d4ddb16cc583a9ffeb80 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 31 Jan 2013 20:37:58 +0000
Subject: * Adds a satisfying angular roll when an avatar is flying and
turning. (General, not physics). Makes flying not feel as stiff.
Conflicts:
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index fd82db7..f2b0160 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4963,8 +4963,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// in that direction, even though we don't model this on the server. Implementing this in the future
// may improve movement smoothness.
// acceleration = new Vector3(1, 0, 0);
-
- angularVelocity = Vector3.Zero;
+
+ angularVelocity = presence.AngularVelocity;
+ rotation = presence.Rotation;
if (sendTexture)
textureEntry = presence.Appearance.Texture.GetBytes();
--
cgit v1.1
From 1f1da230976451d30d920c237d53c699ba96b9d9 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 5 Feb 2013 00:23:17 +0000
Subject: Bump version and assembly version numbers from 0.7.5 to 0.7.6
This is mostly Bluewall's work but I am also bumping the general version number
OpenSimulator 0.7.5 remains in the release candidate stage.
I'm doing this because master is significantly adding things that will not be in 0.7.5
This update should not cause issues with existing external binary DLLs because our DLLs do not have strong names
and so the exact version match requirement is not in force.
---
OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs b/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs
index 060a61c..d29a001 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyVersion("0.7.6.*")]
[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs b/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs
index af2f6f8..8f9dad3 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("0.7.5.*")]
+[assembly: AssemblyVersion("0.7.6.*")]
[assembly: AssemblyFileVersion("1.0.0.0")]
--
cgit v1.1
From 2163bebeb40755b59b0b186f0d75aae5f16d8c84 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 5 Feb 2013 20:09:02 +0000
Subject: Try to fix uploaded mesh rotations - code from Avination code base.
---
.../Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 39 +++++++++++++++-------
1 file changed, 27 insertions(+), 12 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index a534522..6ebe660 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -641,25 +641,40 @@ namespace OpenSim.Region.ClientStack.Linden
grp.AddPart(prim);
}
- // Fix first link number
+ Vector3 rootPos = positions[0];
+
if (grp.Parts.Length > 1)
+ {
+ // Fix first link number
grp.RootPart.LinkNum++;
- Vector3 rootPos = positions[0];
- grp.AbsolutePosition = rootPos;
- for (int i = 0; i < positions.Count; i++)
- {
- Vector3 offset = positions[i] - rootPos;
- grp.Parts[i].OffsetPosition = offset;
- }
+ Quaternion rootRotConj = Quaternion.Conjugate(rotations[0]);
+ Quaternion tmprot;
+ Vector3 offset;
+
+ // fix children rotations and positions
+ for (int i = 1; i < rotations.Count; i++)
+ {
+ tmprot = rotations[i];
+ tmprot = rootRotConj * tmprot;
+
+ grp.Parts[i].RotationOffset = tmprot;
- for (int i = 0; i < rotations.Count; i++)
+ offset = positions[i] - rootPos;
+
+ offset *= rootRotConj;
+ grp.Parts[i].OffsetPosition = offset;
+ }
+
+ grp.AbsolutePosition = rootPos;
+ grp.UpdateGroupRotationR(rotations[0]);
+ }
+ else
{
- if (i != 0)
- grp.Parts[i].RotationOffset = rotations[i];
+ grp.AbsolutePosition = rootPos;
+ grp.UpdateGroupRotationR(rotations[0]);
}
- grp.UpdateGroupRotationR(rotations[0]);
data = ASCIIEncoding.ASCII.GetBytes(SceneObjectSerializer.ToOriginalXmlFormat(grp));
}
--
cgit v1.1
From 2104e4d4d4367c0516f52d53490abb02bb459745 Mon Sep 17 00:00:00 2001
From: teravus
Date: Tue, 5 Feb 2013 18:46:02 -0500
Subject: * the root prim was being given an OffsetPosition in addition to
setting the position when creating the root prim. The offset position
caused the positioning code to re-move the root prim when you selected it and
released it.
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 6ebe660..568e216 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -617,7 +617,7 @@ namespace OpenSim.Region.ClientStack.Linden
= new SceneObjectPart(owner_id, pbs, position, Quaternion.Identity, Vector3.Zero);
prim.Scale = scale;
- prim.OffsetPosition = position;
+ //prim.OffsetPosition = position;
rotations.Add(rotation);
positions.Add(position);
prim.UUID = UUID.Random();
--
cgit v1.1
From 598f891d703593bde4b96472b5d1b1ce6aaf4c74 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Wed, 6 Feb 2013 04:03:32 +0100
Subject: Move SoubleQueu to Util. Change HTTP inv to prioritize COF. Determine
COF for SP
---
.../Linden/Caps/WebFetchInvDescModule.cs | 77 +++++++++++++--
.../Region/ClientStack/Linden/UDP/LLUDPServer.cs | 108 ---------------------
2 files changed, 70 insertions(+), 115 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
index 04cd474..a823dd8 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
@@ -39,10 +39,13 @@ using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
+using OpenSim.Framework.Capabilities;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
using OpenSim.Capabilities.Handlers;
using OpenSim.Framework.Monitoring;
+using OpenMetaverse;
+using OpenMetaverse.StructuredData;
namespace OpenSim.Region.ClientStack.Linden
{
@@ -52,11 +55,13 @@ namespace OpenSim.Region.ClientStack.Linden
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "WebFetchInvDescModule")]
public class WebFetchInvDescModule : INonSharedRegionModule
{
- struct aPollRequest
+ class aPollRequest
{
public PollServiceInventoryEventArgs thepoll;
public UUID reqID;
public Hashtable request;
+ public ScenePresence presence;
+ public List folders;
}
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -71,8 +76,8 @@ namespace OpenSim.Region.ClientStack.Linden
private Dictionary m_capsDict = new Dictionary();
private static Thread[] m_workerThreads = null;
- private static OpenMetaverse.BlockingQueue m_queue =
- new OpenMetaverse.BlockingQueue();
+ private static DoubleQueue m_queue =
+ new DoubleQueue();
#region ISharedRegionModule Members
@@ -143,12 +148,18 @@ namespace OpenSim.Region.ClientStack.Linden
private class PollServiceInventoryEventArgs : PollServiceEventArgs
{
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+
private Dictionary responses =
new Dictionary();
- public PollServiceInventoryEventArgs(UUID pId) :
+ private Scene m_scene;
+
+ public PollServiceInventoryEventArgs(Scene scene, UUID pId) :
base(null, null, null, null, pId, int.MaxValue)
{
+ m_scene = scene;
+
HasEvents = (x, y) => { lock (responses) return responses.ContainsKey(x); };
GetEvents = (x, y) =>
{
@@ -167,12 +178,64 @@ namespace OpenSim.Region.ClientStack.Linden
Request = (x, y) =>
{
+ ScenePresence sp = m_scene.GetScenePresence(Id);
+ if (sp == null)
+ {
+ m_log.ErrorFormat("[INVENTORY]: Unable to find ScenePresence for {0}", Id);
+ return;
+ }
+
aPollRequest reqinfo = new aPollRequest();
reqinfo.thepoll = this;
reqinfo.reqID = x;
reqinfo.request = y;
+ reqinfo.presence = sp;
+ reqinfo.folders = new List();
+
+ // Decode the request here
+ string request = y["body"].ToString();
+
+ request = request.Replace("00000000-0000-0000-0000-000000000000", "00000000-0000-0000-0000-000000000000");
+
+ request = request.Replace("fetch_folders0", "fetch_folders0");
+ request = request.Replace("fetch_folders1", "fetch_folders1");
+
+ Hashtable hash = new Hashtable();
+ try
+ {
+ hash = (Hashtable)LLSD.LLSDDeserialize(Utils.StringToBytes(request));
+ }
+ catch (LLSD.LLSDParseException e)
+ {
+ m_log.ErrorFormat("[INVENTORY]: Fetch error: {0}{1}" + e.Message, e.StackTrace);
+ m_log.Error("Request: " + request);
+ return;
+ }
+
+ ArrayList foldersrequested = (ArrayList)hash["folders"];
+
+ bool highPriority = false;
+
+ for (int i = 0; i < foldersrequested.Count; i++)
+ {
+ Hashtable inventoryhash = (Hashtable)foldersrequested[i];
+ string folder = inventoryhash["folder_id"].ToString();
+ UUID folderID;
+ if (UUID.TryParse(folder, out folderID))
+ {
+ if (!reqinfo.folders.Contains(folderID))
+ {
+ if (sp.COF != UUID.Zero && sp.COF == folderID)
+ highPriority = true;
+ reqinfo.folders.Add(folderID);
+ }
+ }
+ }
- m_queue.Enqueue(reqinfo);
+ if (highPriority)
+ m_queue.EnqueueHigh(reqinfo);
+ else
+ m_queue.EnqueueLow(reqinfo);
};
NoEvents = (x, y) =>
@@ -208,7 +271,7 @@ namespace OpenSim.Region.ClientStack.Linden
response["reusecontext"] = false;
response["str_response_string"] = m_webFetchHandler.FetchInventoryDescendentsRequest(
- requestinfo.request["body"].ToString(), String.Empty, String.Empty, null, null);
+ requestinfo.request["body"].ToString(), String.Empty, String.Empty, null, null);
lock (responses)
responses[requestID] = response;
@@ -220,7 +283,7 @@ namespace OpenSim.Region.ClientStack.Linden
string capUrl = "/CAPS/" + UUID.Random() + "/";
// Register this as a poll service
- PollServiceInventoryEventArgs args = new PollServiceInventoryEventArgs(agentID);
+ PollServiceInventoryEventArgs args = new PollServiceInventoryEventArgs(m_scene, agentID);
args.Type = PollServiceEventArgs.EventType.Inventory;
MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args);
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 6c72edc..d49f1f7 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1903,112 +1903,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
}
-
- internal class DoubleQueue where T:class
- {
- private Queue m_lowQueue = new Queue();
- private Queue m_highQueue = new Queue();
-
- private object m_syncRoot = new object();
- private Semaphore m_s = new Semaphore(0, 1);
-
- public DoubleQueue()
- {
- }
-
- public virtual int Count
- {
- get { return m_highQueue.Count + m_lowQueue.Count; }
- }
-
- public virtual void Enqueue(T data)
- {
- Enqueue(m_lowQueue, data);
- }
-
- public virtual void EnqueueLow(T data)
- {
- Enqueue(m_lowQueue, data);
- }
-
- public virtual void EnqueueHigh(T data)
- {
- Enqueue(m_highQueue, data);
- }
-
- private void Enqueue(Queue q, T data)
- {
- lock (m_syncRoot)
- {
- m_lowQueue.Enqueue(data);
- m_s.WaitOne(0);
- m_s.Release();
- }
- }
-
- public virtual T Dequeue()
- {
- return Dequeue(Timeout.Infinite);
- }
-
- public virtual T Dequeue(int tmo)
- {
- return Dequeue(TimeSpan.FromMilliseconds(tmo));
- }
-
- public virtual T Dequeue(TimeSpan wait)
- {
- T res = null;
-
- if (!Dequeue(wait, ref res))
- return null;
-
- return res;
- }
-
- public bool Dequeue(int timeout, ref T res)
- {
- return Dequeue(TimeSpan.FromMilliseconds(timeout), ref res);
- }
-
- public bool Dequeue(TimeSpan wait, ref T res)
- {
- if (!m_s.WaitOne(wait))
- return false;
-
- lock (m_syncRoot)
- {
- if (m_highQueue.Count > 0)
- res = m_highQueue.Dequeue();
- else
- res = m_lowQueue.Dequeue();
-
- if (m_highQueue.Count == 0 && m_lowQueue.Count == 0)
- return true;
-
- try
- {
- m_s.Release();
- }
- catch
- {
- }
-
- return true;
- }
- }
-
- public virtual void Clear()
- {
-
- lock (m_syncRoot)
- {
- // Make sure sem count is 0
- m_s.WaitOne(0);
-
- m_lowQueue.Clear();
- m_highQueue.Clear();
- }
- }
- }
}
--
cgit v1.1
From 6aa876a83b08390ab057eb012fd2c730010f79d8 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 7 Feb 2013 03:40:48 +0000
Subject: Rename Bounciness to Restitution
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 83347e2..d7d4708 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -1316,7 +1316,7 @@ namespace OpenSim.Region.ClientStack.Linden
object_data["PhysicsShapeType"] = obj.PhysicsShapeType;
object_data["Density"] = obj.Density;
object_data["Friction"] = obj.Friction;
- object_data["Restitution"] = obj.Bounciness;
+ object_data["Restitution"] = obj.Restitution;
object_data["GravityMultiplier"] = obj.GravityModifier;
resp[uuid.ToString()] = object_data;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 0a39ded..f1fe6e1 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2654,7 +2654,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
byte physshapetype = part.PhysicsShapeType;
float density = part.Density;
float friction = part.Friction;
- float bounce = part.Bounciness;
+ float bounce = part.Restitution;
float gravmod = part.GravityModifier;
eq.partPhysicsProperties(localid, physshapetype, density, friction, bounce, gravmod,AgentId);
--
cgit v1.1
From 338b02a8bc51d1dc5c1161a2a5a10b85521d1f8e Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 7 Feb 2013 21:23:35 +0000
Subject: Send the new physics params to the viewer build dialog
---
.../Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 35 ++++++++++++++++++++++
1 file changed, 35 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 568e216..1af61db 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -96,6 +96,8 @@ namespace OpenSim.Region.ClientStack.Linden
// private static readonly string m_fetchInventoryPath = "0006/";
private static readonly string m_copyFromNotecardPath = "0007/";
// private static readonly string m_remoteParcelRequestPath = "0009/";// This is in the LandManagementModule.
+ private static readonly string m_getObjectPhysicsDataPath = "0101/";
+ /* 0102 - 0103 RESERVED */
private static readonly string m_UpdateAgentInformationPath = "0500/";
// These are callbacks which will be setup by the scene so that we can update scene data when we
@@ -204,6 +206,8 @@ namespace OpenSim.Region.ClientStack.Linden
m_HostCapsObj.RegisterHandler("UpdateNotecardAgentInventory", req);
m_HostCapsObj.RegisterHandler("UpdateScriptAgentInventory", req);
m_HostCapsObj.RegisterHandler("UpdateScriptAgent", req);
+ IRequestHandler getObjectPhysicsDataHandler = new RestStreamHandler("POST", capsBase + m_getObjectPhysicsDataPath, GetObjectPhysicsData);
+ m_HostCapsObj.RegisterHandler("GetObjectPhysicsData", getObjectPhysicsDataHandler);
IRequestHandler UpdateAgentInformationHandler = new RestStreamHandler("POST", capsBase + m_UpdateAgentInformationPath, UpdateAgentInformation);
m_HostCapsObj.RegisterHandler("UpdateAgentInformation", UpdateAgentInformationHandler);
@@ -873,6 +877,37 @@ namespace OpenSim.Region.ClientStack.Linden
return LLSDHelpers.SerialiseLLSDReply(response);
}
+ public string GetObjectPhysicsData(string request, string path,
+ string param, IOSHttpRequest httpRequest,
+ IOSHttpResponse httpResponse)
+ {
+ OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
+ OSDMap resp = new OSDMap();
+ OSDArray object_ids = (OSDArray)req["object_ids"];
+
+ for (int i = 0 ; i < object_ids.Count ; i++)
+ {
+ UUID uuid = object_ids[i].AsUUID();
+
+ SceneObjectPart obj = m_Scene.GetSceneObjectPart(uuid);
+ if (obj != null)
+ {
+ OSDMap object_data = new OSDMap();
+
+ object_data["PhysicsShapeType"] = obj.PhysicsShapeType;
+ object_data["Density"] = obj.Density;
+ object_data["Friction"] = obj.Friction;
+ object_data["Restitution"] = obj.Restitution;
+ object_data["GravityMultiplier"] = obj.GravityModifier;
+
+ resp[uuid.ToString()] = object_data;
+ }
+ }
+
+ string response = OSDParser.SerializeLLSDXmlString(resp);
+ return response;
+ }
+
public string UpdateAgentInformation(string request, string path,
string param, IOSHttpRequest httpRequest,
IOSHttpResponse httpResponse)
--
cgit v1.1
From bbda7b94b3fe2350d5413879388cfce7309ca907 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 7 Feb 2013 03:40:48 +0000
Subject: Rename Bounciness to Restitution
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index b06788b..2bb3d38 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -1317,7 +1317,7 @@ namespace OpenSim.Region.ClientStack.Linden
object_data["PhysicsShapeType"] = obj.PhysicsShapeType;
object_data["Density"] = obj.Density;
object_data["Friction"] = obj.Friction;
- object_data["Restitution"] = obj.Bounciness;
+ object_data["Restitution"] = obj.Restitution;
object_data["GravityMultiplier"] = obj.GravityModifier;
resp[uuid.ToString()] = object_data;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index f2b0160..ca15e3e 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2654,7 +2654,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
byte physshapetype = part.PhysicsShapeType;
float density = part.Density;
float friction = part.Friction;
- float bounce = part.Bounciness;
+ float bounce = part.Restitution;
float gravmod = part.GravityModifier;
eq.partPhysicsProperties(localid, physshapetype, density, friction, bounce, gravmod,AgentId);
--
cgit v1.1
From 7bf33d333af6e7393a05940d1ab436f5dce73814 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 7 Feb 2013 22:25:28 +0000
Subject: Plumb the path from the client to the extra physics params and back
---
.../Linden/Caps/EventQueue/EventQueueGetModule.cs | 8 +++
.../Linden/Caps/EventQueue/EventQueueHelper.cs | 20 ++++++++
.../Region/ClientStack/Linden/UDP/LLClientView.cs | 59 ++++++++++++++++++++--
3 files changed, 83 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index 4d2c0f2..3cc3950 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -807,5 +807,13 @@ namespace OpenSim.Region.ClientStack.Linden
{
return EventQueueHelper.BuildEvent(eventName, eventBody);
}
+
+ public void partPhysicsProperties(uint localID, byte physhapetype,
+ float density, float friction, float bounce, float gravmod,UUID avatarID)
+ {
+ OSD item = EventQueueHelper.partPhysicsProperties(localID, physhapetype,
+ density, friction, bounce, gravmod);
+ Enqueue(item, avatarID);
+ }
}
}
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
index 3f49aba..dab727f 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueHelper.cs
@@ -395,5 +395,25 @@ namespace OpenSim.Region.ClientStack.Linden
return message;
}
+ public static OSD partPhysicsProperties(uint localID, byte physhapetype,
+ float density, float friction, float bounce, float gravmod)
+ {
+
+ OSDMap physinfo = new OSDMap(6);
+ physinfo["LocalID"] = localID;
+ physinfo["Density"] = density;
+ physinfo["Friction"] = friction;
+ physinfo["GravityMultiplier"] = gravmod;
+ physinfo["Restitution"] = bounce;
+ physinfo["PhysicsShapeType"] = (int)physhapetype;
+
+ OSDArray array = new OSDArray(1);
+ array.Add(physinfo);
+
+ OSDMap llsdBody = new OSDMap(1);
+ llsdBody.Add("ObjectData", array);
+
+ return BuildEvent("ObjectPhysicsProperties", llsdBody);
+ }
}
}
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 88b64f5..bd4a2d1 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -2627,6 +2627,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
+ public void SendPartPhysicsProprieties(ISceneEntity entity)
+ {
+ SceneObjectPart part = (SceneObjectPart)entity;
+ if (part != null && AgentId != UUID.Zero)
+ {
+ try
+ {
+ IEventQueue eq = Scene.RequestModuleInterface();
+ if (eq != null)
+ {
+ uint localid = part.LocalId;
+ byte physshapetype = part.PhysicsShapeType;
+ float density = part.Density;
+ float friction = part.Friction;
+ float bounce = part.Restitution;
+ float gravmod = part.GravityModifier;
+ eq.partPhysicsProperties(localid, physshapetype, density, friction, bounce, gravmod,AgentId);
+ }
+ }
+ catch (Exception ex)
+ {
+ m_log.Error("Unable to send part Physics Proprieties - exception: " + ex.ToString());
+ }
+ part.UpdatePhysRequired = false;
+ }
+ }
+
+
public void SendGroupNameReply(UUID groupLLUID, string GroupName)
{
@@ -7035,10 +7063,33 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// 46,47,48 are special positions within the packet
// This may change so perhaps we need a better way
// of storing this (OMV.FlagUpdatePacket.UsePhysics,etc?)
- bool UsePhysics = (data[46] != 0) ? true : false;
- bool IsTemporary = (data[47] != 0) ? true : false;
- bool IsPhantom = (data[48] != 0) ? true : false;
- handlerUpdatePrimFlags(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, this);
+ /*
+ bool UsePhysics = (data[46] != 0) ? true : false;
+ bool IsTemporary = (data[47] != 0) ? true : false;
+ bool IsPhantom = (data[48] != 0) ? true : false;
+ handlerUpdatePrimFlags(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, this);
+ */
+ bool UsePhysics = flags.AgentData.UsePhysics;
+ bool IsPhantom = flags.AgentData.IsPhantom;
+ bool IsTemporary = flags.AgentData.IsTemporary;
+ ObjectFlagUpdatePacket.ExtraPhysicsBlock[] blocks = flags.ExtraPhysics;
+ ExtraPhysicsData physdata = new ExtraPhysicsData();
+
+ if (blocks == null || blocks.Length == 0)
+ {
+ physdata.PhysShapeType = PhysShapeType.invalid;
+ }
+ else
+ {
+ ObjectFlagUpdatePacket.ExtraPhysicsBlock phsblock = blocks[0];
+ physdata.PhysShapeType = (PhysShapeType)phsblock.PhysicsShapeType;
+ physdata.Bounce = phsblock.Restitution;
+ physdata.Density = phsblock.Density;
+ physdata.Friction = phsblock.Friction;
+ physdata.GravitationModifier = phsblock.GravityMultiplier;
+ }
+
+ handlerUpdatePrimFlags(flags.AgentData.ObjectLocalID, UsePhysics, IsTemporary, IsPhantom, physdata, this);
}
return true;
}
--
cgit v1.1
From 04235e58e87ae42617111cad2884e42785914d4e Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 12 Feb 2013 01:02:16 +0100
Subject: Push updates from keyframe directly to the front of the output queue
rather than through the update system.
---
.../Region/ClientStack/Linden/UDP/LLClientView.cs | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index ca15e3e..8d46415 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3721,6 +3721,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags)
{
+ if ((updateFlags & PrimUpdateFlags.Immediate) != 0)
+ {
+ SendUnqueuedTerseUpdate((SceneObjectPart)entity);
+ return;
+ }
+
if (entity is SceneObjectPart)
{
SceneObjectPart e = (SceneObjectPart)entity;
@@ -4075,6 +4081,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ProcessEntityUpdates(-1);
}
+ public void SendUnqueuedTerseUpdate(SceneObjectPart part)
+ {
+ ImprovedTerseObjectUpdatePacket packet
+ = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(
+ PacketType.ImprovedTerseObjectUpdate);
+ packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
+ packet.RegionData.TimeDilation = Utils.FloatToUInt16(1.0f, 0.0f, 1.0f);
+ packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
+
+ packet.ObjectData[0] = CreateImprovedTerseBlock(part, false);
+
+ OutPacket(packet, ThrottleOutPacketType.Task | ThrottleOutPacketType.HighPriority);
+ }
+
#endregion Primitive Packet/Data Sending Methods
// These are used to implement an adaptive backoff in the number
--
cgit v1.1
From 048e904f051ccc38e7d00936b45288af3c6fc010 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 12 Feb 2013 01:13:30 +0100
Subject: Use actual time dilation for unqueued updates
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 8d46415..81a772b 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4087,7 +4087,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
= (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(
PacketType.ImprovedTerseObjectUpdate);
packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
- packet.RegionData.TimeDilation = Utils.FloatToUInt16(1.0f, 0.0f, 1.0f);
+ packet.RegionData.TimeDilation = Utils.FloatToUInt16(m_scene.TimeDilation, 0.0f, 1.0f);
packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
packet.ObjectData[0] = CreateImprovedTerseBlock(part, false);
--
cgit v1.1
From 2065590232894acb8dae15ff935dfae1405326a5 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 12 Feb 2013 03:15:32 +0100
Subject: Revert "Use actual time dilation for unqueued updates"
This reverts commit 048e904f051ccc38e7d00936b45288af3c6fc010.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 81a772b..8d46415 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4087,7 +4087,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
= (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(
PacketType.ImprovedTerseObjectUpdate);
packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
- packet.RegionData.TimeDilation = Utils.FloatToUInt16(m_scene.TimeDilation, 0.0f, 1.0f);
+ packet.RegionData.TimeDilation = Utils.FloatToUInt16(1.0f, 0.0f, 1.0f);
packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
packet.ObjectData[0] = CreateImprovedTerseBlock(part, false);
--
cgit v1.1
From 14c064c65da3d9cce045664f83daaeb7a79edcdd Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 12 Feb 2013 03:15:40 +0100
Subject: Revert "Push updates from keyframe directly to the front of the
output queue rather"
This reverts commit 04235e58e87ae42617111cad2884e42785914d4e.
---
.../Region/ClientStack/Linden/UDP/LLClientView.cs | 20 --------------------
1 file changed, 20 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 8d46415..ca15e3e 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3721,12 +3721,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
///
public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags)
{
- if ((updateFlags & PrimUpdateFlags.Immediate) != 0)
- {
- SendUnqueuedTerseUpdate((SceneObjectPart)entity);
- return;
- }
-
if (entity is SceneObjectPart)
{
SceneObjectPart e = (SceneObjectPart)entity;
@@ -4081,20 +4075,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ProcessEntityUpdates(-1);
}
- public void SendUnqueuedTerseUpdate(SceneObjectPart part)
- {
- ImprovedTerseObjectUpdatePacket packet
- = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(
- PacketType.ImprovedTerseObjectUpdate);
- packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
- packet.RegionData.TimeDilation = Utils.FloatToUInt16(1.0f, 0.0f, 1.0f);
- packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
-
- packet.ObjectData[0] = CreateImprovedTerseBlock(part, false);
-
- OutPacket(packet, ThrottleOutPacketType.Task | ThrottleOutPacketType.HighPriority);
- }
-
#endregion Primitive Packet/Data Sending Methods
// These are used to implement an adaptive backoff in the number
--
cgit v1.1
From c2bfdaa026b02b1a6f41745464e7934e166ab35f Mon Sep 17 00:00:00 2001
From: Melanie
Date: Wed, 13 Feb 2013 01:52:25 +0000
Subject: Make the sim features module register it's interface so it can be
used
---
OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs | 2 ++
1 file changed, 2 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
index 191bccf..8f38737 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
@@ -94,6 +94,8 @@ namespace OpenSim.Region.ClientStack.Linden
{
m_scene = s;
m_scene.EventManager.OnRegisterCaps += RegisterCaps;
+
+ m_scene.RegisterModuleInterface(this);
}
public void RemoveRegion(Scene s)
--
cgit v1.1
From 4c7df6a1473e4e0a144e06f6e318251419f64af8 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 14 Feb 2013 07:17:27 +0100
Subject: Small fix to sim features module
---
OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs | 2 ++
1 file changed, 2 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
index 191bccf..8f38737 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
@@ -94,6 +94,8 @@ namespace OpenSim.Region.ClientStack.Linden
{
m_scene = s;
m_scene.EventManager.OnRegisterCaps += RegisterCaps;
+
+ m_scene.RegisterModuleInterface(this);
}
public void RemoveRegion(Scene s)
--
cgit v1.1
From 32c4e1a850fc271808f2e80c79c628ddc82e0206 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 14 Feb 2013 08:40:15 +0100
Subject: Add an event and some logic to allow customizing Simulator Features
by avatar
---
.../Linden/Caps/SimulatorFeaturesModule.cs | 25 ++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
index 8f38737..6ef8815 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
@@ -59,6 +59,8 @@ namespace OpenSim.Region.ClientStack.Linden
// private static readonly ILog m_log =
// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ public event SimulatorFeaturesRequestDelegate OnSimulatorFeaturesRequest;
+
private Scene m_scene;
///
@@ -158,7 +160,7 @@ namespace OpenSim.Region.ClientStack.Linden
IRequestHandler reqHandler
= new RestHTTPHandler(
"GET", "/CAPS/" + UUID.Random(),
- HandleSimulatorFeaturesRequest, "SimulatorFeatures", agentID.ToString());
+ x => { return HandleSimulatorFeaturesRequest(x, agentID); }, "SimulatorFeatures", agentID.ToString());
caps.RegisterHandler("SimulatorFeatures", reqHandler);
}
@@ -187,18 +189,33 @@ namespace OpenSim.Region.ClientStack.Linden
return new OSDMap(m_features);
}
- private Hashtable HandleSimulatorFeaturesRequest(Hashtable mDhttpMethod)
+ private OSDMap DeepCopy()
+ {
+ // This isn't the cheapest way of doing this but the rate
+ // of occurrence is low (on sim entry only) and it's a sure
+ // way to get a true deep copy.
+ OSD copy = OSDParser.DeserializeLLSDXml(OSDParser.SerializeLLSDXmlString(m_features));
+
+ return (OSDMap)copy;
+ }
+
+ private Hashtable HandleSimulatorFeaturesRequest(Hashtable mDhttpMethod, UUID agentID)
{
// m_log.DebugFormat("[SIMULATOR FEATURES MODULE]: SimulatorFeatures request");
+ OSDMap copy = DeepCopy();
+
+ SimulatorFeaturesRequestDelegate handlerOnSimulatorFeaturesRequest = OnSimulatorFeaturesRequest;
+ if (handlerOnSimulatorFeaturesRequest != null)
+ handlerOnSimulatorFeaturesRequest(agentID, ref copy);
+
//Send back data
Hashtable responsedata = new Hashtable();
responsedata["int_response_code"] = 200;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
- lock (m_features)
- responsedata["str_response_string"] = OSDParser.SerializeLLSDXmlString(m_features);
+ responsedata["str_response_string"] = OSDParser.SerializeLLSDXmlString(copy);
return responsedata;
}
--
cgit v1.1
From ef662fc959c7943e55c548c50c6b160d12e5c095 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 14 Feb 2013 08:40:15 +0100
Subject: Add an event and some logic to allow customizing Simulator Features
by avatar
---
.../Linden/Caps/SimulatorFeaturesModule.cs | 25 ++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
index 8f38737..6ef8815 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
@@ -59,6 +59,8 @@ namespace OpenSim.Region.ClientStack.Linden
// private static readonly ILog m_log =
// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ public event SimulatorFeaturesRequestDelegate OnSimulatorFeaturesRequest;
+
private Scene m_scene;
///
@@ -158,7 +160,7 @@ namespace OpenSim.Region.ClientStack.Linden
IRequestHandler reqHandler
= new RestHTTPHandler(
"GET", "/CAPS/" + UUID.Random(),
- HandleSimulatorFeaturesRequest, "SimulatorFeatures", agentID.ToString());
+ x => { return HandleSimulatorFeaturesRequest(x, agentID); }, "SimulatorFeatures", agentID.ToString());
caps.RegisterHandler("SimulatorFeatures", reqHandler);
}
@@ -187,18 +189,33 @@ namespace OpenSim.Region.ClientStack.Linden
return new OSDMap(m_features);
}
- private Hashtable HandleSimulatorFeaturesRequest(Hashtable mDhttpMethod)
+ private OSDMap DeepCopy()
+ {
+ // This isn't the cheapest way of doing this but the rate
+ // of occurrence is low (on sim entry only) and it's a sure
+ // way to get a true deep copy.
+ OSD copy = OSDParser.DeserializeLLSDXml(OSDParser.SerializeLLSDXmlString(m_features));
+
+ return (OSDMap)copy;
+ }
+
+ private Hashtable HandleSimulatorFeaturesRequest(Hashtable mDhttpMethod, UUID agentID)
{
// m_log.DebugFormat("[SIMULATOR FEATURES MODULE]: SimulatorFeatures request");
+ OSDMap copy = DeepCopy();
+
+ SimulatorFeaturesRequestDelegate handlerOnSimulatorFeaturesRequest = OnSimulatorFeaturesRequest;
+ if (handlerOnSimulatorFeaturesRequest != null)
+ handlerOnSimulatorFeaturesRequest(agentID, ref copy);
+
//Send back data
Hashtable responsedata = new Hashtable();
responsedata["int_response_code"] = 200;
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
- lock (m_features)
- responsedata["str_response_string"] = OSDParser.SerializeLLSDXmlString(m_features);
+ responsedata["str_response_string"] = OSDParser.SerializeLLSDXmlString(copy);
return responsedata;
}
--
cgit v1.1
From 4be35df5fa1f1ba364ac45ae8b2585319dfbdbae Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sat, 16 Feb 2013 05:09:27 +0100
Subject: Fix shape parameters sent for meshes tosupport the full number of
faces
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 ++++++++
1 file changed, 8 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index ca15e3e..0267805 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3893,6 +3893,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
part.Shape.LightEntry = false;
}
}
+
+ if (part.Shape != null && (part.Shape.SculptType == (byte)SculptType.Mesh))
+ {
+ // Ensure that mesh has at least 8 valid faces
+ part.Shape.ProfileBegin = 12500;
+ part.Shape.ProfileEnd = 0;
+ part.Shape.ProfileHollow = 27500;
+ }
}
++updatesThisCall;
--
cgit v1.1
From 3108d18ffb2fc4d2b10eac696842335b25aaf088 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sat, 16 Feb 2013 05:09:27 +0100
Subject: Fix shape parameters sent for meshes tosupport the full number of
faces
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 ++++++++
1 file changed, 8 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index bd4a2d1..a187190 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3802,6 +3802,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
part.Shape.LightEntry = false;
}
}
+
+ if (part.Shape != null && (part.Shape.SculptType == (byte)SculptType.Mesh))
+ {
+ // Ensure that mesh has at least 8 valid faces
+ part.Shape.ProfileBegin = 12500;
+ part.Shape.ProfileEnd = 0;
+ part.Shape.ProfileHollow = 27500;
+ }
}
#region UpdateFlags to packet type conversion
--
cgit v1.1
From 8c0b9080a4fb013d559966fc8c8175fb16162c2d Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 18 Feb 2013 21:09:14 +0100
Subject: Fix an issue where the viewer would request the seed cap before there
was a handler for it.
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 3 +++
1 file changed, 3 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 2bb3d38..248eab6 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -343,6 +343,9 @@ namespace OpenSim.Region.ClientStack.Linden
m_log.DebugFormat(
"[CAPS]: Received SEED caps request in {0} for agent {1}", m_regionName, m_HostCapsObj.AgentID);
+ if (!m_HostCapsObj.WaitForActivation())
+ return string.Empty;
+
if (!m_Scene.CheckClient(m_HostCapsObj.AgentID, httpRequest.RemoteIPEndPoint))
{
m_log.WarnFormat(
--
cgit v1.1
From 8a6f2432fc0c57645cb395578f373474548975e9 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 20 Feb 2013 00:01:20 +0000
Subject: minor: remove some mono compiler warnings in
OpenSim.Region.ClientStack.Linden.Caps.dll
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 2 +-
OpenSim/Region/ClientStack/Linden/Caps/RegionConsoleModule.cs | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 1af61db..20df8a6 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -912,7 +912,7 @@ namespace OpenSim.Region.ClientStack.Linden
string param, IOSHttpRequest httpRequest,
IOSHttpResponse httpResponse)
{
- OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
+// OSDMap req = (OSDMap)OSDParser.DeserializeLLSDXml(request);
OSDMap resp = new OSDMap();
OSDMap accessPrefs = new OSDMap();
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/RegionConsoleModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/RegionConsoleModule.cs
index 17c7270..69dd76f 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/RegionConsoleModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/RegionConsoleModule.cs
@@ -56,8 +56,8 @@ namespace OpenSim.Region.ClientStack.Linden
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "RegionConsoleModule")]
public class RegionConsoleModule : INonSharedRegionModule, IRegionConsole
{
- private static readonly ILog m_log =
- LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+// private static readonly ILog m_log =
+// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private Scene m_scene;
private IEventQueue m_eventQueue;
@@ -157,8 +157,8 @@ namespace OpenSim.Region.ClientStack.Linden
public class ConsoleHandler : BaseStreamHandler
{
- private static readonly ILog m_log =
- LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+// private static readonly ILog m_log =
+// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private RegionConsoleModule m_consoleModule;
private UUID m_agentID;
--
cgit v1.1
From 4779f7d7d5ce0e284d9ed15104389f8479b11545 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Tue, 19 Feb 2013 17:14:55 -0800
Subject: Deleted all AssemblyFileVersion directives
---
OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs | 2 +-
OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs b/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs
index d29a001..595d01a 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/Properties/AssemblyInfo.cs
@@ -30,4 +30,4 @@ using System.Runtime.InteropServices;
// Revision
//
[assembly: AssemblyVersion("0.7.6.*")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs b/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs
index 8f9dad3..98ef72f 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/Properties/AssemblyInfo.cs
@@ -30,4 +30,4 @@ using System.Runtime.InteropServices;
// Revision
//
[assembly: AssemblyVersion("0.7.6.*")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+
--
cgit v1.1
From 681653ca130eaf15c62aae6fd1a7c5276036a0e9 Mon Sep 17 00:00:00 2001
From: Robert Adams
Date: Wed, 20 Feb 2013 14:11:02 -0800
Subject: Add a method to IStatsCollector for returning stats as an OSDMap.
Extend implementors of IStatsCollector to return an OSDMap of stats. Update
UserStatsCollector and AssetStatsCollector to return both string and OSDMap
data (as well as console format).
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 5 +++++
1 file changed, 5 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index a187190..5675870 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -12138,6 +12138,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return String.Empty;
}
+ public OSDMap OReport(string uptime, string version)
+ {
+ return new OSDMap();
+ }
+
///
/// Make an asset request to the asset service in response to a client request.
///
--
cgit v1.1
From e0e9118f8137ec95c73fe264f0c3fcf9f7305741 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 24 Feb 2013 18:31:49 +0100
Subject: The viewer tries to parse the error message body to LLSD - give it
some.
---
.../Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index 986a665..f6e501d 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -467,8 +467,8 @@ namespace OpenSim.Region.ClientStack.Linden
responsedata["content_type"] = "text/plain";
responsedata["keepalive"] = false;
responsedata["reusecontext"] = false;
- responsedata["str_response_string"] = "Upstream error: ";
- responsedata["error_status_text"] = "Upstream error:";
+ responsedata["str_response_string"] = "";
+ responsedata["error_status_text"] = "";
responsedata["http_protocol_version"] = "HTTP/1.0";
return responsedata;
}
--
cgit v1.1
From da2b59848461d0f309067762403f9143551bb5ba Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 25 Feb 2013 18:26:59 +0100
Subject: Make banking no longer break sit rotations. Fix spinning avatars.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 0267805..0388828 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4960,6 +4960,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
position = part.OffsetPosition + presence.OffsetPosition * part.RotationOffset;
rotation = part.RotationOffset * presence.Rotation;
}
+ angularVelocity = Vector3.Zero;
+ }
+ else
+ {
+ angularVelocity = presence.AngularVelocity;
+ rotation = presence.Rotation;
}
attachPoint = 0;
@@ -4972,9 +4978,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// may improve movement smoothness.
// acceleration = new Vector3(1, 0, 0);
- angularVelocity = presence.AngularVelocity;
- rotation = presence.Rotation;
-
if (sendTexture)
textureEntry = presence.Appearance.Texture.GetBytes();
else
--
cgit v1.1
From 2ad72db0ecd834ca7071aa6038f209b64f79b868 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 3 Mar 2013 11:40:46 +0100
Subject: Make a viewer sent XML error prettier
---
OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
index a823dd8..707cc93 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs
@@ -211,6 +211,10 @@ namespace OpenSim.Region.ClientStack.Linden
m_log.Error("Request: " + request);
return;
}
+ catch (System.Xml.XmlException)
+ {
+ m_log.ErrorFormat("[INVENTORY]: XML Format error");
+ }
ArrayList foldersrequested = (ArrayList)hash["folders"];
--
cgit v1.1
From fa9f4ef1baca14ed4ee20712219932f1e6e09990 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Mon, 4 Mar 2013 23:20:00 +0000
Subject: Fix issue in the mesh upload flag module where the ID of the last
agent to request the capability was always used instead of the original
requesting agent for each cap.
Should address http://opensimulator.org/mantis/view.php?id=6556
---
.../Region/ClientStack/Linden/Caps/MeshUploadFlagModule.cs | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/MeshUploadFlagModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/MeshUploadFlagModule.cs
index 33b1f77..45d33cd 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/MeshUploadFlagModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/MeshUploadFlagModule.cs
@@ -57,7 +57,6 @@ namespace OpenSim.Region.ClientStack.Linden
public bool Enabled { get; private set; }
private Scene m_scene;
- private UUID m_agentID;
#region ISharedRegionModule Members
@@ -118,25 +117,26 @@ namespace OpenSim.Region.ClientStack.Linden
public void RegisterCaps(UUID agentID, Caps caps)
{
IRequestHandler reqHandler
- = new RestHTTPHandler("GET", "/CAPS/" + UUID.Random(), MeshUploadFlag, "MeshUploadFlag", agentID.ToString());
+ = new RestHTTPHandler(
+ "GET", "/CAPS/" + UUID.Random(), ht => MeshUploadFlag(ht, agentID), "MeshUploadFlag", agentID.ToString());
caps.RegisterHandler("MeshUploadFlag", reqHandler);
- m_agentID = agentID;
+
}
- private Hashtable MeshUploadFlag(Hashtable mDhttpMethod)
+ private Hashtable MeshUploadFlag(Hashtable mDhttpMethod, UUID agentID)
{
// m_log.DebugFormat("[MESH UPLOAD FLAG MODULE]: MeshUploadFlag request");
OSDMap data = new OSDMap();
- ScenePresence sp = m_scene.GetScenePresence(m_agentID);
+ ScenePresence sp = m_scene.GetScenePresence(agentID);
data["username"] = sp.Firstname + "." + sp.Lastname;
data["display_name_next_update"] = new OSDDate(DateTime.Now);
data["legacy_first_name"] = sp.Firstname;
data["mesh_upload_status"] = "valid";
data["display_name"] = sp.Firstname + " " + sp.Lastname;
data["legacy_last_name"] = sp.Lastname;
- data["id"] = m_agentID;
+ data["id"] = agentID;
data["is_display_name_default"] = true;
//Send back data
--
cgit v1.1
From 7556b42d7a208e3e7dfc23550293bad243533328 Mon Sep 17 00:00:00 2001
From: teravus
Date: Mon, 4 Mar 2013 21:26:26 -0500
Subject: * Update LibOMV to f8f8e616b37a7ea22b7922b2331999bc06725bf9 * Add
zero length blocks to the new packet blocks to remain compatible with older
viewers and avoid a NullRef when _packets_.cs calls the Length parameter..
which adds up the Length property all of the blocks.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 5675870..6742d99 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -790,7 +790,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
handshake.RegionInfo3.ColoName = Utils.EmptyBytes;
handshake.RegionInfo3.ProductName = Util.StringToBytes256(regionInfo.RegionType);
handshake.RegionInfo3.ProductSKU = Utils.EmptyBytes;
-
+ handshake.RegionInfo4 = new RegionHandshakePacket.RegionInfo4Block[0];
+
OutPacket(handshake, ThrottleOutPacketType.Task);
}
@@ -3571,6 +3572,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
avp.Sender.IsTrial = false;
avp.Sender.ID = agentID;
+ avp.AppearanceData = new AvatarAppearancePacket.AppearanceDataBlock[0];
//m_log.DebugFormat("[CLIENT]: Sending appearance for {0} to {1}", agentID.ToString(), AgentId.ToString());
OutPacket(avp, ThrottleOutPacketType.Task);
}
@@ -4192,7 +4194,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
pack.Stat = stats.StatsBlock;
pack.Header.Reliable = false;
-
+ pack.RegionInfo = new SimStatsPacket.RegionInfoBlock[0];
OutPacket(pack, ThrottleOutPacketType.Task);
}
--
cgit v1.1
From 33dab49d22002b9d24b2c286d662dca1755ace30 Mon Sep 17 00:00:00 2001
From: teravus
Date: Thu, 7 Mar 2013 19:19:36 -0500
Subject: * Just another one of those new packet blocks causing a null ref.
Defaulting to zero length array.....
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 6742d99..bae7952 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4581,7 +4581,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
rinfopack.AgentData = new RegionInfoPacket.AgentDataBlock();
rinfopack.AgentData.AgentID = AgentId;
rinfopack.AgentData.SessionID = SessionId;
-
+ rinfopack.RegionInfo3 = new RegionInfoPacket.RegionInfo3Block[0];
OutPacket(rinfopack, ThrottleOutPacketType.Task);
}
--
cgit v1.1
From e898a5fec5b78fe428ec10e1cd94cc717f5ac5a7 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Mon, 11 Mar 2013 22:42:27 +0000
Subject: minor: Remove mono compiler warnings in EventQueueTests
---
.../ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
index ed8ec16..141af8a 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/Tests/EventQueueTests.cs
@@ -49,8 +49,10 @@ namespace OpenSim.Region.ClientStack.Linden.Tests
private TestScene m_scene;
[SetUp]
- public void SetUp()
+ public override void SetUp()
{
+ base.SetUp();
+
uint port = 9999;
uint sslPort = 9998;
--
cgit v1.1
From f8a4d95bdd2bff70a428d386edad1ca91e15c6c0 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 13 Mar 2013 00:22:07 +0000
Subject: minor: Remove mono compiler warning in LLClientView
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index bae7952..7ea538c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -7069,7 +7069,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (handlerUpdatePrimFlags != null)
{
- byte[] data = Pack.ToBytes();
+// byte[] data = Pack.ToBytes();
// 46,47,48 are special positions within the packet
// This may change so perhaps we need a better way
// of storing this (OMV.FlagUpdatePacket.UsePhysics,etc?)
--
cgit v1.1
From c10c43d6f6b0a79848b9a655533c27ab58cd2993 Mon Sep 17 00:00:00 2001
From: Robert Adams
Date: Fri, 15 Mar 2013 13:59:34 -0700
Subject: Fix server statistics always reporting zero for total network bytes
in/out. Clean up some parameter code in Statistics.Binary.
---
.../Region/ClientStack/Linden/UDP/LLUDPServer.cs | 51 ++++++++++++++--------
1 file changed, 32 insertions(+), 19 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index a7628d2..72516cd 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -278,25 +278,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_shouldCollectStats = false;
if (config != null)
{
- if (config.Contains("enabled") && config.GetBoolean("enabled"))
- {
- if (config.Contains("collect_packet_headers"))
- m_shouldCollectStats = config.GetBoolean("collect_packet_headers");
- if (config.Contains("packet_headers_period_seconds"))
- {
- binStatsMaxFilesize = TimeSpan.FromSeconds(config.GetInt("region_stats_period_seconds"));
- }
- if (config.Contains("stats_dir"))
- {
- binStatsDir = config.GetString("stats_dir");
- }
- }
- else
- {
- m_shouldCollectStats = false;
- }
- }
- #endregion BinaryStats
+ m_shouldCollectStats = config.GetBoolean("Enabled", false);
+ binStatsMaxFilesize = TimeSpan.FromSeconds(config.GetInt("packet_headers_period_seconds", 300));
+ binStatsDir = config.GetString("stats_dir", ".");
+ m_aggregatedBWStats = config.GetBoolean("aggregatedBWStats", false);
+ }
+ #endregion BinaryStats
m_throttle = new TokenBucket(null, sceneThrottleBps);
ThrottleRates = new ThrottleRates(configSource);
@@ -1266,8 +1253,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
static object binStatsLogLock = new object();
static string binStatsDir = "";
+ //for Aggregated In/Out BW logging
+ static bool m_aggregatedBWStats = false;
+ static long m_aggregatedBytesIn = 0;
+ static long m_aggregatedByestOut = 0;
+ static object aggBWStatsLock = new object();
+
+ public static long AggregatedLLUDPBytesIn
+ {
+ get { return m_aggregatedBytesIn; }
+ }
+ public static long AggregatedLLUDPBytesOut
+ {
+ get {return m_aggregatedByestOut;}
+ }
+
public static void LogPacketHeader(bool incoming, uint circuit, byte flags, PacketType packetType, ushort size)
{
+ if (m_aggregatedBWStats)
+ {
+ lock (aggBWStatsLock)
+ {
+ if (incoming)
+ m_aggregatedBytesIn += size;
+ else
+ m_aggregatedByestOut += size;
+ }
+ }
+
if (!m_shouldCollectStats) return;
// Binary logging format is TTTTTTTTCCCCFPPPSS, T=Time, C=Circuit, F=Flags, P=PacketType, S=size
--
cgit v1.1
From c341664c1b8ccf3bd7b81795b900b971a15ff318 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Sun, 24 Mar 2013 18:56:28 +0100
Subject: Phase 1 of implementing a transfer permission. Overwrite libOMV's
PermissionMask with our own and add export permissions as well as a new
definition for "All" as meaning "all conventional permissions" rather than
"all possible permissions"
---
.../Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 9 +++++----
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 +++++---
2 files changed, 10 insertions(+), 7 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index eadca9b..921d3bf 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -50,6 +50,7 @@ using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
using OSDArray = OpenMetaverse.StructuredData.OSDArray;
using OSDMap = OpenMetaverse.StructuredData.OSDMap;
+using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.Linden
{
@@ -830,9 +831,9 @@ namespace OpenSim.Region.ClientStack.Linden
texitem.Folder = texturesFolder;
texitem.CurrentPermissions
- = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer);
+ = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export);
- texitem.BasePermissions = (uint)PermissionMask.All;
+ texitem.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export;
texitem.EveryOnePermissions = 0;
texitem.NextPermissions = (uint)PermissionMask.All;
texitem.CreationDate = Util.UnixTimeSinceEpoch();
@@ -1097,9 +1098,9 @@ namespace OpenSim.Region.ClientStack.Linden
else
{
item.CurrentPermissions
- = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer);
+ = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export);
- item.BasePermissions = (uint)PermissionMask.All;
+ item.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export;
item.EveryOnePermissions = 0;
item.NextPermissions = (uint)PermissionMask.All;
}
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 5b2bad4..f8b9352 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -51,6 +51,7 @@ using RegionFlags = OpenMetaverse.RegionFlags;
using Nini.Config;
using System.IO;
+using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.LindenUDP
{
@@ -1802,7 +1803,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item)
{
- const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
+ // Fudge this value. It's only needed to make the CRC anyway
+ const uint FULL_MASK_PERMISSIONS = (uint)0x7fffffff;
FetchInventoryReplyPacket inventoryReply = (FetchInventoryReplyPacket)PacketPool.Instance.GetPacket(PacketType.FetchInventoryReply);
// TODO: don't create new blocks if recycling an old packet
@@ -2007,7 +2009,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected void SendBulkUpdateInventoryItem(InventoryItemBase item)
{
- const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
+ const uint FULL_MASK_PERMISSIONS = (uint)0x7ffffff;
BulkUpdateInventoryPacket bulkUpdate
= (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory);
@@ -2066,7 +2068,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// IClientAPI.SendInventoryItemCreateUpdate(InventoryItemBase)
public void SendInventoryItemCreateUpdate(InventoryItemBase Item, UUID transactionID, uint callbackId)
{
- const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
+ const uint FULL_MASK_PERMISSIONS = (uint)0x7fffffff;
UpdateCreateInventoryItemPacket InventoryReply
= (UpdateCreateInventoryItemPacket)PacketPool.Instance.GetPacket(
--
cgit v1.1
From 5f4c4df227025c6b6156ce8238b56553dca4b5ae Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 26 Mar 2013 03:40:06 +0000
Subject: Phase 1 of implementing a transfer permission. Overwrite libOMV's
PermissionMask with our own and add export permissions as well as a new
definition for "All" as meaning "all conventional permissions" rather than
"all possible permissions"
---
OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs | 5 +++--
.../Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs | 1 +
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 8 +++++---
3 files changed, 9 insertions(+), 5 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
index 20df8a6..8752404 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/BunchOfCaps/BunchOfCaps.cs
@@ -49,6 +49,7 @@ using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
using OSDArray = OpenMetaverse.StructuredData.OSDArray;
using OSDMap = OpenMetaverse.StructuredData.OSDMap;
+using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.Linden
{
@@ -705,9 +706,9 @@ namespace OpenSim.Region.ClientStack.Linden
// If we set PermissionMask.All then when we rez the item the next permissions will replace the current
// (owner) permissions. This becomes a problem if next permissions are changed.
item.CurrentPermissions
- = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer);
+ = (uint)(PermissionMask.Move | PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer | PermissionMask.Export);
- item.BasePermissions = (uint)PermissionMask.All;
+ item.BasePermissions = (uint)PermissionMask.All | (uint)PermissionMask.Export;
item.EveryOnePermissions = 0;
item.NextPermissions = (uint)PermissionMask.All;
item.CreationDate = Util.UnixTimeSinceEpoch();
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs
index 5529550..f69a0bb 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/NewFileAgentInventoryVariablePriceModule.cs
@@ -44,6 +44,7 @@ using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
using Caps = OpenSim.Framework.Capabilities.Caps;
using OpenSim.Framework.Capabilities;
+using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.Linden
{
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 7ea538c..110e50e 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -51,6 +51,7 @@ using RegionFlags = OpenMetaverse.RegionFlags;
using Nini.Config;
using System.IO;
+using PermissionMask = OpenSim.Framework.PermissionMask;
namespace OpenSim.Region.ClientStack.LindenUDP
{
@@ -1808,7 +1809,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void SendInventoryItemDetails(UUID ownerID, InventoryItemBase item)
{
- const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
+ // Fudge this value. It's only needed to make the CRC anyway
+ const uint FULL_MASK_PERMISSIONS = (uint)0x7fffffff;
FetchInventoryReplyPacket inventoryReply = (FetchInventoryReplyPacket)PacketPool.Instance.GetPacket(PacketType.FetchInventoryReply);
// TODO: don't create new blocks if recycling an old packet
@@ -2013,7 +2015,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
protected void SendBulkUpdateInventoryItem(InventoryItemBase item)
{
- const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
+ const uint FULL_MASK_PERMISSIONS = (uint)0x7ffffff;
BulkUpdateInventoryPacket bulkUpdate
= (BulkUpdateInventoryPacket)PacketPool.Instance.GetPacket(PacketType.BulkUpdateInventory);
@@ -2067,7 +2069,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// IClientAPI.SendInventoryItemCreateUpdate(InventoryItemBase)
public void SendInventoryItemCreateUpdate(InventoryItemBase Item, uint callbackId)
{
- const uint FULL_MASK_PERMISSIONS = (uint)PermissionMask.All;
+ const uint FULL_MASK_PERMISSIONS = (uint)0x7fffffff;
UpdateCreateInventoryItemPacket InventoryReply
= (UpdateCreateInventoryItemPacket)PacketPool.Instance.GetPacket(
--
cgit v1.1
From e82fab34d7377a7d9bfc223f093ac67b393677cc Mon Sep 17 00:00:00 2001
From: Melanie
Date: Tue, 26 Mar 2013 19:00:30 +0000
Subject: Implement a pref to turn on the simulator ExportSupported feature
entry. This tells the viewer to enable the UI for export permissions.
WARNING: If your inventory store contains invalid flags data, this will
result in items becoming exportable! Don't turn this on in production until
it's complete!
---
OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
index 6ef8815..7d9f935 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/SimulatorFeaturesModule.cs
@@ -70,6 +70,7 @@ namespace OpenSim.Region.ClientStack.Linden
private string m_MapImageServerURL = string.Empty;
private string m_SearchURL = string.Empty;
+ private bool m_ExportSupported = false;
#region ISharedRegionModule Members
@@ -87,6 +88,8 @@ namespace OpenSim.Region.ClientStack.Linden
}
m_SearchURL = config.GetString("SearchServerURI", string.Empty);
+
+ m_ExportSupported = config.GetBoolean("ExportSupported", m_ExportSupported);
}
AddDefaultFeatures();
@@ -152,6 +155,9 @@ namespace OpenSim.Region.ClientStack.Linden
if (m_SearchURL != string.Empty)
gridServicesMap["search"] = m_SearchURL;
m_features["GridServices"] = gridServicesMap;
+
+ if (m_ExportSupported)
+ m_features["ExportSupported"] = true;
}
}
--
cgit v1.1
From 876d0d310f3c7248a4a6fc29d8babe55a7b1e570 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 28 Mar 2013 01:36:34 +0000
Subject: Add "show eq" console command to show numbers of messages in agent
event queues.
For debugging purposes.
---
.../Linden/Caps/EventQueue/EventQueueGetModule.cs | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index 3cc3950..624378e 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -97,6 +97,14 @@ namespace OpenSim.Region.ClientStack.Linden
+ " >= 1 - turns on outgoing event logging\n"
+ " >= 2 - turns on poll notification",
HandleDebugEq);
+
+ MainConsole.Instance.Commands.AddCommand(
+ "Debug",
+ false,
+ "show eq",
+ "show eq",
+ "Show contents of event queues for logged in avatars. Used for debugging.",
+ HandleShowEq);
}
public void RemoveRegion(Scene scene)
@@ -148,6 +156,21 @@ namespace OpenSim.Region.ClientStack.Linden
}
}
+ protected void HandleShowEq(string module, string[] args)
+ {
+ MainConsole.Instance.OutputFormat("For scene {0}", m_scene.Name);
+
+ lock (queues)
+ {
+ foreach (KeyValuePair> kvp in queues)
+ {
+ MainConsole.Instance.OutputFormat(
+ "For agent {0} there are {1} messages queued for send.",
+ kvp.Key, kvp.Value.Count);
+ }
+ }
+ }
+
///
/// Always returns a valid queue
///
--
cgit v1.1
From 617637c788045f5776d21fc4ce246f3a8d6ecfb8 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Thu, 28 Mar 2013 01:41:23 +0000
Subject: minor: Fix usage error message for "debug eq" console command
---
.../Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index 624378e..c7d4283 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -146,7 +146,7 @@ namespace OpenSim.Region.ClientStack.Linden
if (!(args.Length == 3 && int.TryParse(args[2], out debugLevel)))
{
- MainConsole.Instance.OutputFormat("Usage: debug eq [0|1]");
+ MainConsole.Instance.OutputFormat("Usage: debug eq [0|1|2]");
}
else
{
--
cgit v1.1
From 6571e7ead276027e5ed86cb1fc9d1b47ddae2e6e Mon Sep 17 00:00:00 2001
From: Melanie
Date: Mon, 22 Apr 2013 22:24:41 +0200
Subject: Allow callers to set the invoice parameter for GenericMessage
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index f8b9352..4979be8 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -903,9 +903,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
}
}
- public void SendGenericMessage(string method, List message)
+ public void SendGenericMessage(string method, UUID invoice, List message)
{
GenericMessagePacket gmp = new GenericMessagePacket();
+
+ gmp.AgentData.AgentID = AgentId;
+ gmp.AgentData.SessionID = m_sessionId;
+ gmp.AgentData.TransactionID = invoice;
+
gmp.MethodData.Method = Util.StringToBytes256(method);
gmp.ParamList = new GenericMessagePacket.ParamListBlock[message.Count];
int i = 0;
@@ -918,9 +923,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
OutPacket(gmp, ThrottleOutPacketType.Task);
}
- public void SendGenericMessage(string method, List message)
+ public void SendGenericMessage(string method, UUID invoice, List message)
{
GenericMessagePacket gmp = new GenericMessagePacket();
+
+ gmp.AgentData.AgentID = AgentId;
+ gmp.AgentData.SessionID = m_sessionId;
+ gmp.AgentData.TransactionID = invoice;
+
gmp.MethodData.Method = Util.StringToBytes256(method);
gmp.ParamList = new GenericMessagePacket.ParamListBlock[message.Count];
int i = 0;
--
cgit v1.1
From e39156c6569b10d48b0005b271f103387e16f527 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 25 Apr 2013 01:38:21 +0200
Subject: Send 503 when throttling textures
---
.../ClientStack/Linden/Caps/GetTextureModule.cs | 34 +++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
index d4dbfb9..a42c96c 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
@@ -56,6 +56,7 @@ namespace OpenSim.Region.ClientStack.Linden
public PollServiceTextureEventArgs thepoll;
public UUID reqID;
public Hashtable request;
+ public bool send503;
}
public class aPollResponse
@@ -244,7 +245,19 @@ namespace OpenSim.Region.ClientStack.Linden
reqinfo.thepoll = this;
reqinfo.reqID = x;
reqinfo.request = y;
+ reqinfo.send503 = false;
+ lock (responses)
+ {
+ if (responses.Count > 0)
+ {
+ if (m_queue.Count >= 4)
+ {
+ // Never allow more than 4 fetches to wait
+ reqinfo.send503 = true;
+ }
+ }
+ }
m_queue.Enqueue(reqinfo);
};
@@ -276,6 +289,22 @@ namespace OpenSim.Region.ClientStack.Linden
UUID requestID = requestinfo.reqID;
+ if (requestinfo.send503)
+ {
+ response = new Hashtable();
+
+ response["int_response_code"] = 503;
+ response["str_response_string"] = "Throttled";
+ response["content_type"] = "text/plain";
+ response["keepalive"] = false;
+ response["reusecontext"] = false;
+
+ lock (responses)
+ responses[requestID] = new aPollResponse() {bytes = 0, response = response};
+
+ return;
+ }
+
// If the avatar is gone, don't bother to get the texture
if (m_scene.GetScenePresence(Id) == null)
{
@@ -385,6 +414,9 @@ namespace OpenSim.Region.ClientStack.Linden
GetTextureModule.aPollResponse response;
if (responses.TryGetValue(key, out response))
{
+ // This is any error response
+ if (response.bytes == 0)
+ return true;
// Normal
if (BytesSent + response.bytes <= ThrottleBytes)
@@ -411,12 +443,12 @@ namespace OpenSim.Region.ClientStack.Linden
return haskey;
}
+
public void ProcessTime()
{
PassTime();
}
-
private void PassTime()
{
currenttime = Util.EnvironmentTickCount();
--
cgit v1.1
From 40036ca05f3a34ef7f0728ed52878068a66bc502 Mon Sep 17 00:00:00 2001
From: Melanie
Date: Thu, 25 Apr 2013 21:35:18 +0100
Subject: Change EconomyDataRequest signature to use an IClientAPI rather than
UUID. This is needed because recent LL viewer codebases call this earlier in
login when the client is not yet established in the sim and can't be found by
UUID. Sending the reply requires having the IClientAPI.
---
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/ClientStack/Linden')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 4979be8..98160c9 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -9860,7 +9860,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
EconomyDataRequest handlerEconomoyDataRequest = OnEconomyDataRequest;
if (handlerEconomoyDataRequest != null)
{
- handlerEconomoyDataRequest(AgentId);
+ handlerEconomoyDataRequest(this);
}
return true;
}
--
cgit v1.1