From 582c20b1c4fb669884f0e2804487dd050f779f2b Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Mon, 25 May 2009 19:54:47 +0000 Subject: * reseparate inventory item creator id and creator uuid * unfortunately, while the client requires uuids and we want to be able to have arbitrary string ids, these cannot be kept in sync * I think the problems last time were due to a serialization change * So the major inteface version has been bumped to take care of any lingering issues here. * This means that region servers beyond this revision can only connect to similarly uptodate grid services, and vice versa --- OpenSim/Framework/InventoryItemBase.cs | 24 ++++++++++++++++------ .../Servers/HttpServer/RestSessionService.cs | 4 ---- OpenSim/Framework/Servers/VersionInfo.cs | 2 +- .../Grid/InventoryServer/GridInventoryService.cs | 5 +++-- .../Archiver/Tests/InventoryArchiverTests.cs | 3 --- 5 files changed, 22 insertions(+), 16 deletions(-) diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs index 2968712..cab241e 100644 --- a/OpenSim/Framework/InventoryItemBase.cs +++ b/OpenSim/Framework/InventoryItemBase.cs @@ -84,26 +84,38 @@ namespace OpenSim.Framework m_creatorId = value; } } + protected string m_creatorId; - protected string m_creatorId = UUID.Zero.ToString(); /// - /// The creator of this item expressed as a UUID. Database plugins don't need to set this, it will be set by + /// The UUID for the creator. This may be different from the canonical CreatorId. This property is used + /// for communication with the client over the Second Life protocol, since that protocol can only understand + /// UUIDs. As this is a basic framework class, this means that both the string creator id and the uuid + /// reference have to be settable separately + /// + /// Database plugins don't need to set this, it will be set by /// upstream code (or set by the get accessor if left unset). + /// + /// XXX: An alternative to having a separate uuid property would be to hash the CreatorId appropriately + /// every time there was communication with a UUID-only client. This may be much more expensive. /// public UUID CreatorIdAsUuid { get { - UUID temp = UUID.Zero; - UUID.TryParse(CreatorId, out temp); - return temp; + if (UUID.Zero == m_creatorIdAsUuid) + { + UUID.TryParse(CreatorId, out m_creatorIdAsUuid); + } + + return m_creatorIdAsUuid; } set { - CreatorId = value.ToString(); + m_creatorIdAsUuid = value; } } + protected UUID m_creatorIdAsUuid = UUID.Zero; /// /// The description of the inventory item (must be less than 64 characters) diff --git a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs index f5e4248..ec2f9ec 100644 --- a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs +++ b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs @@ -236,10 +236,6 @@ namespace OpenSim.Framework.Servers.HttpServer /// /// The operation to perform once trust has been established. /// - /// - /// - /// - /// private RestDeserialiseMethod m_method; /// diff --git a/OpenSim/Framework/Servers/VersionInfo.cs b/OpenSim/Framework/Servers/VersionInfo.cs index 7ed3b96..c16a7f4 100644 --- a/OpenSim/Framework/Servers/VersionInfo.cs +++ b/OpenSim/Framework/Servers/VersionInfo.cs @@ -48,6 +48,6 @@ namespace OpenSim /// of the code that is too old. /// /// - public readonly static int MajorInterfaceVersion = 3; + public readonly static int MajorInterfaceVersion = 4; } } diff --git a/OpenSim/Grid/InventoryServer/GridInventoryService.cs b/OpenSim/Grid/InventoryServer/GridInventoryService.cs index 16d8154..66dfb14 100644 --- a/OpenSim/Grid/InventoryServer/GridInventoryService.cs +++ b/OpenSim/Grid/InventoryServer/GridInventoryService.cs @@ -44,6 +44,8 @@ namespace OpenSim.Grid.InventoryServer /// public class GridInventoryService : InventoryServiceBase { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private bool m_doLookup = false; public bool DoLookup @@ -51,8 +53,7 @@ namespace OpenSim.Grid.InventoryServer get { return m_doLookup; } set { m_doLookup = value; } } - private static readonly ILog m_log - = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static readonly int INVENTORY_DEFAULT_SESSION_TIME = 30; // secs private string m_userserver_url; diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index fd79ffa..20adb21 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -198,7 +198,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests [Test] public void TestLoadIarV0_1ExistingUsers() { - Assert.Ignore(); TestHelper.InMethod(); //log4net.Config.XmlConfigurator.Configure(); @@ -265,9 +264,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests [Test] public void TestLoadIarV0_1TempProfiles() { - Assert.Ignore(); TestHelper.InMethod(); - Console.WriteLine("### Started {0} ###", MethodBase.GetCurrentMethod()); log4net.Config.XmlConfigurator.Configure(); -- cgit v1.1