* 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
0.6.6-post-fixes
Justin Clarke Casey 2009-05-25 19:54:47 +00:00
parent 896c206718
commit 582c20b1c4
5 changed files with 22 additions and 16 deletions

View File

@ -84,26 +84,38 @@ namespace OpenSim.Framework
m_creatorId = value;
}
}
protected string m_creatorId;
protected string m_creatorId = UUID.Zero.ToString();
/// <value>
/// 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.
/// </value>
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;
/// <value>
/// The description of the inventory item (must be less than 64 characters)

View File

@ -236,10 +236,6 @@ namespace OpenSim.Framework.Servers.HttpServer
/// <summary>
/// The operation to perform once trust has been established.
/// </summary>
/// <param name="httpMethod"></param>
/// <param name="path"></param>
/// <param name="method"></param>
/// <param name="tmethod"></param>
private RestDeserialiseMethod<TRequest, TResponse> m_method;
/// <summary>

View File

@ -48,6 +48,6 @@ namespace OpenSim
/// of the code that is too old.
///
/// </value>
public readonly static int MajorInterfaceVersion = 3;
public readonly static int MajorInterfaceVersion = 4;
}
}

View File

@ -44,6 +44,8 @@ namespace OpenSim.Grid.InventoryServer
/// </summary>
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;

View File

@ -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();