aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs7
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs13
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs13
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs37
7 files changed, 58 insertions, 23 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index c6f8b88..ca0b7ad 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -769,8 +769,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
769 bool canEditObjectsChanged = ((rights ^ userFlags) & (int)FriendRights.CanModifyObjects) != 0; 769 bool canEditObjectsChanged = ((rights ^ userFlags) & (int)FriendRights.CanModifyObjects) != 0;
770 if (canEditObjectsChanged) 770 if (canEditObjectsChanged)
771 friendClient.SendChangeUserRights(userID, friendID, rights); 771 friendClient.SendChangeUserRights(userID, friendID, rights);
772
772 } 773 }
773 774
775 // update local cache
776 //m_Friends[friendID].Friends = m_FriendsService.GetFriends(friendID);
777 foreach (FriendInfo finfo in m_Friends[friendID].Friends)
778 if (finfo.Friend == userID.ToString())
779 finfo.TheirFlags = rights;
780
774 return true; 781 return true;
775 } 782 }
776 783
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
index 2ab46aa..b0555da 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
@@ -131,6 +131,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
131 return ret; 131 return ret;
132 } 132 }
133 133
134 // DO NOT OVERRIDE THIS METHOD
134 public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID, 135 public virtual UUID DeleteToInventory(DeRezAction action, UUID folderID,
135 SceneObjectGroup objectGroup, IClientAPI remoteClient) 136 SceneObjectGroup objectGroup, IClientAPI remoteClient)
136 { 137 {
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 3035d88..12b6aa0 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -286,23 +286,15 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
286 { 286 {
287 // Deleting someone else's item 287 // Deleting someone else's item
288 // 288 //
289
290
291 if (remoteClient == null || 289 if (remoteClient == null ||
292 objectGroup.OwnerID != remoteClient.AgentId) 290 objectGroup.OwnerID != remoteClient.AgentId)
293 { 291 {
294 // Folder skeleton may not be loaded and we 292
295 // have to wait for the inventory to find
296 // the destination folder
297 //
298 folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.LostAndFoundFolder); 293 folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.LostAndFoundFolder);
299 } 294 }
300 else 295 else
301 { 296 {
302 // Assume inventory skeleton was loaded during login 297 folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.TrashFolder);
303 // and all folders can be found
304 //
305 folder = m_Scene.InventoryService.GetFolderForType(userID, AssetType.TrashFolder);
306 } 298 }
307 } 299 }
308 else if (action == DeRezAction.Return) 300 else if (action == DeRezAction.Return)
@@ -332,7 +324,6 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
332 324
333 if (folder == null) // None of the above 325 if (folder == null) // None of the above
334 { 326 {
335 //folder = userInfo.RootFolder.FindFolder(folderID);
336 folder = new InventoryFolderBase(folderID); 327 folder = new InventoryFolderBase(folderID);
337 328
338 if (folder == null) // Nowhere to put it 329 if (folder == null) // Nowhere to put it
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs
index ae03cdf..209cf0d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsIn/Inventory/InventoryServiceInConnectorModule.cs
@@ -96,7 +96,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory
96 96
97 Object[] args = new Object[] { m_Config, MainServer.Instance, "HGInventoryService" }; 97 Object[] args = new Object[] { m_Config, MainServer.Instance, "HGInventoryService" };
98 98
99 ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:HGInventoryServiceInConnector", args); 99 ServerUtils.LoadPlugin<IServiceConnector>("OpenSim.Server.Handlers.dll:XInventoryInConnector", args);
100 } 100 }
101 } 101 }
102 102
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
index 4d360f6..a1451ce 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsRequest.cs
@@ -134,8 +134,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
134 134
135 foreach (KeyValuePair<UUID, AssetType> kvp in m_uuids) 135 foreach (KeyValuePair<UUID, AssetType> kvp in m_uuids)
136 { 136 {
137 if (kvp.Key != UUID.Zero) 137 m_assetService.Get(kvp.Key.ToString(), kvp.Value, PreAssetRequestCallback);
138 m_assetService.Get(kvp.Key.ToString(), kvp.Value, PreAssetRequestCallback);
139 } 138 }
140 139
141 m_requestCallbackTimer.Enabled = true; 140 m_requestCallbackTimer.Enabled = true;
@@ -270,7 +269,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
270 } 269 }
271 catch (Exception e) 270 catch (Exception e)
272 { 271 {
273 m_log.ErrorFormat("[ARCHIVER]: AssetRequestCallback failed with {0}{1}", e.Message, e.StackTrace); 272 m_log.ErrorFormat("[ARCHIVER]: AssetRequestCallback failed with {0}", e);
274 } 273 }
275 } 274 }
276 275
@@ -286,8 +285,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
286 catch (Exception e) 285 catch (Exception e)
287 { 286 {
288 m_log.ErrorFormat( 287 m_log.ErrorFormat(
289 "[ARCHIVER]: Terminating archive creation since asset requester callback failed with {0}{1}", 288 "[ARCHIVER]: Terminating archive creation since asset requster callback failed with {0}", e);
290 e.Message, e.StackTrace);
291 } 289 }
292 } 290 }
293 } 291 }
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index e61132e..0ac427f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1592,7 +1592,17 @@ namespace OpenSim.Region.Framework.Scenes
1592 // So that we know the database is upto date, 1592 // So that we know the database is upto date,
1593 // for when deleting the object from it 1593 // for when deleting the object from it
1594 ForceSceneObjectBackup(grp); 1594 ForceSceneObjectBackup(grp);
1595 if (remoteClient != null) 1595
1596 if (remoteClient == null)
1597 {
1598 // Autoreturn has a null client. Nothing else does. So
1599 // allow only returns
1600 if (action != DeRezAction.Return)
1601 return;
1602
1603 permissionToTakeCopy = false;
1604 }
1605 else
1596 { 1606 {
1597 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId)) 1607 if (!Permissions.CanTakeCopyObject(grp.UUID, remoteClient.AgentId))
1598 permissionToTakeCopy = false; 1608 permissionToTakeCopy = false;
@@ -1601,7 +1611,6 @@ namespace OpenSim.Region.Framework.Scenes
1601 1611
1602 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId)) 1612 if (!Permissions.CanDeleteObject(grp.UUID, remoteClient.AgentId))
1603 permissionToDelete = false; 1613 permissionToDelete = false;
1604
1605 } 1614 }
1606 } 1615 }
1607 1616
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
index 30e127d..bbaf923 100644
--- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
+++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
@@ -556,6 +556,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine
556 556
557 if (stateSource == (int)StateSource.ScriptedRez) 557 if (stateSource == (int)StateSource.ScriptedRez)
558 { 558 {
559 lock (m_CompileDict)
560 {
561 m_CompileDict[itemID] = 0;
562 }
563
559 DoOnRezScript(parms); 564 DoOnRezScript(parms);
560 } 565 }
561 else 566 else
@@ -1356,9 +1361,23 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1356 string xml = instance.GetXMLState(); 1361 string xml = instance.GetXMLState();
1357 1362
1358 XmlDocument sdoc = new XmlDocument(); 1363 XmlDocument sdoc = new XmlDocument();
1359 sdoc.LoadXml(xml); 1364 bool loadedState = true;
1360 XmlNodeList rootL = sdoc.GetElementsByTagName("ScriptState"); 1365 try
1361 XmlNode rootNode = rootL[0]; 1366 {
1367 sdoc.LoadXml(xml);
1368 }
1369 catch (System.Xml.XmlException e)
1370 {
1371 loadedState = false;
1372 }
1373
1374 XmlNodeList rootL = null;
1375 XmlNode rootNode = null;
1376 if (loadedState)
1377 {
1378 rootL = sdoc.GetElementsByTagName("ScriptState");
1379 rootNode = rootL[0];
1380 }
1362 1381
1363 // Create <State UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"> 1382 // Create <State UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
1364 XmlDocument doc = new XmlDocument(); 1383 XmlDocument doc = new XmlDocument();
@@ -1374,8 +1393,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
1374 stateData.Attributes.Append(engineName); 1393 stateData.Attributes.Append(engineName);
1375 doc.AppendChild(stateData); 1394 doc.AppendChild(stateData);
1376 1395
1396 XmlNode xmlstate = null;
1397
1377 // Add <ScriptState>...</ScriptState> 1398 // Add <ScriptState>...</ScriptState>
1378 XmlNode xmlstate = doc.ImportNode(rootNode, true); 1399 if (loadedState)
1400 {
1401 xmlstate = doc.ImportNode(rootNode, true);
1402 }
1403 else
1404 {
1405 xmlstate = doc.CreateElement("", "ScriptState", "");
1406 }
1407
1379 stateData.AppendChild(xmlstate); 1408 stateData.AppendChild(xmlstate);
1380 1409
1381 string assemName = instance.GetAssemblyName(); 1410 string assemName = instance.GetAssemblyName();