Add QueryItem method to secure inventory and HG inventory, change method sig to

provide additional information the HG needs.
This commit is contained in:
Melanie Thielker
2009-03-22 15:42:22 +00:00
parent 73a982babe
commit e6bb86a224
5 changed files with 61 additions and 9 deletions

View File

@@ -317,6 +317,29 @@ namespace OpenSim.Region.Communications.Hypergrid
return false;
}
public InventoryItemBase QueryItem(InventoryItemBase item, UUID session_id)
{
if (IsLocalStandaloneUser(item.Owner))
{
return base.QueryItem(item);
}
try
{
string invServ = GetUserInventoryURI(item.Owner);
return SynchronousRestSessionObjectPoster<InventoryItemBase, InventoryItemBase>.BeginPostObject(
"POST", invServ + "/QueryItem/", item, session_id.ToString(), item.Owner.ToString());
}
catch (WebException e)
{
m_log.ErrorFormat("[HGrid INVENTORY SERVICE]: Query inventory item operation failed, {0} {1}",
e.Source, e.Message);
}
return null;
}
#endregion
#region Methods common to ISecureInventoryService and IInventoryService

View File

@@ -296,6 +296,22 @@ namespace OpenSim.Region.Communications.OGS1
return false;
}
public InventoryItemBase QueryItem(InventoryItemBase item, UUID session_id)
{
try
{
return SynchronousRestSessionObjectPoster<InventoryItemBase, InventoryItemBase>.BeginPostObject(
"POST", _inventoryServerUrl + "/QueryItem/", item, session_id.ToString(), item.Owner.ToString());
}
catch (WebException e)
{
m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: Query inventory item operation failed, {0} {1}",
e.Source, e.Message);
}
return null;
}
public bool HasInventoryForUser(UUID userID)
{
return false;

View File

@@ -433,10 +433,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
else
{
UUID itemID = new UUID(msg.binaryBucket, 1);
InventoryItemBase item = new InventoryItemBase();
item.ID = itemID;
item.Owner = user.ControllingClient.AgentId;
// Fetch from database
//
if (!userInfo.QueryItem(itemID))
if (!userInfo.QueryItem(item))
{
m_log.Debug("[INVENTORY TRANSFER] Can't find item to give");
return;
@@ -444,7 +448,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
// Get item info
//
InventoryItemBase item = userInfo.RootFolder.FindItem(itemID);
item = userInfo.RootFolder.FindItem(item.ID);
if (item == null)
{
m_log.Debug("[INVENTORY TRANSFER] Can't retrieve item to give");