From c84f63f4dc98613ff286b9d959c71b738e8bc5ed Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Fri, 27 Apr 2012 09:24:50 -0700
Subject: Minor change in error message (HG teleport failures)
---
.../CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'OpenSim/Region/CoreModules')
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
index 634fb43..1854b4a 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
@@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if (sp.UserLevel < m_levelHGTeleport)
{
m_log.WarnFormat("[HG ENTITY TRANSFER MODULE]: Unable to HG teleport agent due to insufficient UserLevel.");
- reason = "HyperGrid teleport not permitted";
+ reason = "Hypergrid teleport not allowed";
return false;
}
--
cgit v1.1
From 9bc94c502a8e30b0d727f15d0e4b4bb22d163d6c Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Fri, 27 Apr 2012 11:05:40 -0700
Subject: MapImageService: changed the event at which the map tiles are
uploaded, because they were being uploaded before the region was registered
with the grid
---
.../MapImage/MapImageServiceModule.cs | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/CoreModules')
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/MapImage/MapImageServiceModule.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/MapImage/MapImageServiceModule.cs
index 6d3ace9..322a9f8 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/MapImage/MapImageServiceModule.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/MapImage/MapImageServiceModule.cs
@@ -146,9 +146,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
lock (m_scenes)
m_scenes[scene.RegionInfo.RegionID] = scene;
- scene.EventManager.OnPrimsLoaded += new EventManager.PrimsLoaded(EventManager_OnPrimsLoaded);
+ scene.EventManager.OnLoginsEnabled += OnLoginsEnabled;
}
+
///
///
///
@@ -163,9 +164,17 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MapImage
#endregion ISharedRegionModule
- void EventManager_OnPrimsLoaded(Scene s)
+ void OnLoginsEnabled(string regionName)
{
- UploadMapTile(s);
+ Scene scene = null;
+ foreach (Scene s in m_scenes.Values)
+ if (s.RegionInfo.RegionName == regionName)
+ {
+ scene = s;
+ break;
+ }
+ if (scene != null)
+ UploadMapTile(scene);
}
--
cgit v1.1
From 37d770f814321b461fc3380345d7ffcd1e00acc9 Mon Sep 17 00:00:00 2001
From: Oren Hurvitz
Date: Mon, 23 Apr 2012 18:30:25 +0300
Subject: Use DotNetZip to compress OARs and IARs.
DotNetZip provides much better compression than standard .NET.
---
.../Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | 5 ++++-
.../CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/CoreModules')
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
index 0ee7606..6587ead 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
@@ -39,6 +39,9 @@ using OpenSim.Framework.Serialization.External;
using OpenSim.Region.CoreModules.World.Archiver;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Services.Interfaces;
+using Ionic.Zlib;
+using GZipStream = Ionic.Zlib.GZipStream;
+using CompressionMode = Ionic.Zlib.CompressionMode;
namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
@@ -99,7 +102,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
scene,
userInfo,
invPath,
- new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress))
+ new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress, CompressionLevel.BestCompression))
{
}
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
index ab3cc41..eabe46e 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
@@ -40,6 +40,9 @@ using OpenSim.Framework.Serialization;
using OpenSim.Region.CoreModules.World.Terrain;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
+using Ionic.Zlib;
+using GZipStream = Ionic.Zlib.GZipStream;
+using CompressionMode = Ionic.Zlib.CompressionMode;
namespace OpenSim.Region.CoreModules.World.Archiver
{
@@ -82,7 +85,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
{
try
{
- m_saveStream = new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress);
+ m_saveStream = new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress, CompressionLevel.BestCompression);
}
catch (EntryPointNotFoundException e)
{
--
cgit v1.1
From 9622e8ac72d29b75b96d2dd481671b57d0a204bf Mon Sep 17 00:00:00 2001
From: Oren Hurvitz
Date: Mon, 23 Apr 2012 19:20:46 +0300
Subject: If a Grid God teleports then include the Godlike teleport flag. This
can affect the starting position in the destination region.
---
.../EntityTransfer/EntityTransferModule.cs | 6 +++++
.../World/Permissions/PermissionsModule.cs | 31 +++++++++++++++-------
2 files changed, 28 insertions(+), 9 deletions(-)
(limited to 'OpenSim/Region/CoreModules')
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index a318a3c..779fd6b 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -161,6 +161,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
public void Teleport(ScenePresence sp, ulong regionHandle, Vector3 position, Vector3 lookAt, uint teleportFlags)
{
+ if (sp.Scene.Permissions.IsGridGod(sp.UUID))
+ {
+ // This user will be a God in the destination scene, too
+ teleportFlags |= (uint)TeleportFlags.Godlike;
+ }
+
if (!sp.Scene.Permissions.CanTeleport(sp.UUID))
return;
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index 2032905..7d75fad 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -166,6 +166,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
m_scene.Permissions.OnDeedParcel += CanDeedParcel;
m_scene.Permissions.OnDeedObject += CanDeedObject;
m_scene.Permissions.OnIsGod += IsGod;
+ m_scene.Permissions.OnIsGridGod += IsGridGod;
m_scene.Permissions.OnIsAdministrator += IsAdministrator;
m_scene.Permissions.OnDuplicateObject += CanDuplicateObject;
m_scene.Permissions.OnDeleteObject += CanDeleteObject; //MAYBE FULLY IMPLEMENTED
@@ -466,22 +467,34 @@ namespace OpenSim.Region.CoreModules.World.Permissions
if (IsEstateManager(user) && m_RegionManagerIsGod)
return true;
+ if (IsGridGod(user, null))
+ return true;
+
+ return false;
+ }
+
+ ///
+ /// Is the given user a God throughout the grid (not just in the current scene)?
+ ///
+ /// The user
+ /// Unused, can be null
+ ///
+ protected bool IsGridGod(UUID user, Scene scene)
+ {
+ DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
+ if (m_bypassPermissions) return m_bypassPermissionsValue;
+
+ if (user == UUID.Zero) return false;
+
if (m_allowGridGods)
{
ScenePresence sp = m_scene.GetScenePresence(user);
if (sp != null)
- {
- if (sp.UserLevel >= 200)
- return true;
- return false;
- }
+ return (sp.UserLevel >= 200);
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, user);
if (account != null)
- {
- if (account.UserLevel >= 200)
- return true;
- }
+ return (account.UserLevel >= 200);
}
return false;
--
cgit v1.1