diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
index 0aee0d44b3..b16c37ae5a 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs
@@ -259,8 +259,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0)
{
// this user is going to another grid
- // check if HyperGrid teleport is allowed, based on user level
- if (sp.UserLevel < m_levelHGTeleport)
+ // for local users, check if HyperGrid teleport is allowed, based on user level
+ if (Scene.UserManagementModule.IsLocalGridUser(sp.UUID) && sp.UserLevel < m_levelHGTeleport)
{
m_log.WarnFormat("[HG ENTITY TRANSFER MODULE]: Unable to HG teleport agent due to insufficient UserLevel.");
reason = "Hypergrid teleport not allowed";
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
index 80257bd5a2..6bb758ea07 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs
@@ -92,7 +92,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
m_HomeURI = thisModuleConfig.GetString("HomeURI", m_HomeURI);
m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true);
m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", string.Empty);
- m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", false);
+ m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", true);
}
else
m_log.Warn("[HG INVENTORY ACCESS MODULE]: HGInventoryAccessModule configs not found. ProfileServerURI not set!");
@@ -351,6 +351,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
private void ProcessInventoryForArriving(IClientAPI client)
{
+ // No-op for now, but we may need to do something for freign users inventory
}
//
@@ -397,6 +398,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
private void ProcessInventoryForLeaving(IClientAPI client)
{
+ // No-op for now
}
#endregion
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index e2be79a0a1..2c18397301 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright (c) Contributors, http://opensimulator.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
@@ -532,7 +532,7 @@ namespace OpenSim.Region.Framework.Scenes
{
if (PhysicsActor != null)
{
- m_velocity = PhysicsActor.TargetVelocity;
+ m_velocity = PhysicsActor.Velocity;
// m_log.DebugFormat(
// "[SCENE PRESENCE]: Set velocity {0} for {1} in {2} via getting Velocity!",
@@ -547,7 +547,7 @@ namespace OpenSim.Region.Framework.Scenes
{
try
{
- PhysicsActor.Velocity = value;
+ PhysicsActor.TargetVelocity = value;
}
catch (Exception e)
{
diff --git a/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs b/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs
index 4123f491bb..ff45d94b7a 100644
--- a/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs
+++ b/OpenSim/Server/Handlers/Asset/AssetServerConnector.cs
@@ -67,10 +67,25 @@ namespace OpenSim.Server.Handlers.Asset
throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName));
bool allowDelete = serverConfig.GetBoolean("AllowRemoteDelete", false);
+ bool allowDeleteAllTypes = serverConfig.GetBoolean("AllowRemoteDeleteAllTypes", false);
+
+ AllowedRemoteDeleteTypes allowedRemoteDeleteTypes;
+
+ if (!allowDelete)
+ {
+ allowedRemoteDeleteTypes = AllowedRemoteDeleteTypes.None;
+ }
+ else
+ {
+ if (allowDeleteAllTypes)
+ allowedRemoteDeleteTypes = AllowedRemoteDeleteTypes.All;
+ else
+ allowedRemoteDeleteTypes = AllowedRemoteDeleteTypes.MapTile;
+ }
server.AddStreamHandler(new AssetServerGetHandler(m_AssetService));
server.AddStreamHandler(new AssetServerPostHandler(m_AssetService));
- server.AddStreamHandler(new AssetServerDeleteHandler(m_AssetService, allowDelete));
+ server.AddStreamHandler(new AssetServerDeleteHandler(m_AssetService, allowedRemoteDeleteTypes));
MainConsole.Instance.Commands.AddCommand("Assets", false,
"show asset",
diff --git a/OpenSim/Server/Handlers/Asset/AssetServerDeleteHandler.cs b/OpenSim/Server/Handlers/Asset/AssetServerDeleteHandler.cs
index 0cfe5b17de..986394bf59 100644
--- a/OpenSim/Server/Handlers/Asset/AssetServerDeleteHandler.cs
+++ b/OpenSim/Server/Handlers/Asset/AssetServerDeleteHandler.cs
@@ -42,18 +42,32 @@ using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Server.Handlers.Asset
{
+ ///
+ /// Remote deletes allowed.
+ ///
+ public enum AllowedRemoteDeleteTypes
+ {
+ None,
+ MapTile,
+ All
+ }
+
public class AssetServerDeleteHandler : BaseStreamHandler
{
- // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+ private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private IAssetService m_AssetService;
- protected bool m_allowDelete;
- public AssetServerDeleteHandler(IAssetService service, bool allowDelete) :
+ ///
+ /// Asset types that can be deleted remotely.
+ ///
+ private AllowedRemoteDeleteTypes m_allowedTypes;
+
+ public AssetServerDeleteHandler(IAssetService service, AllowedRemoteDeleteTypes allowedTypes) :
base("DELETE", "/assets")
{
m_AssetService = service;
- m_allowDelete = allowDelete;
+ m_allowedTypes = allowedTypes;
}
public override byte[] Handle(string path, Stream request,
@@ -63,13 +77,32 @@ namespace OpenSim.Server.Handlers.Asset
string[] p = SplitParams(path);
- if (p.Length > 0 && m_allowDelete)
+ if (p.Length > 0)
{
- result = m_AssetService.Delete(p[0]);
+ if (m_allowedTypes != AllowedRemoteDeleteTypes.None)
+ {
+ string assetID = p[0];
+
+ AssetBase asset = m_AssetService.Get(assetID);
+ if (asset != null)
+ {
+ if (m_allowedTypes == AllowedRemoteDeleteTypes.All
+ || (int)(asset.Flags & AssetFlags.Maptile) != 0)
+ {
+ result = m_AssetService.Delete(assetID);
+ }
+ else
+ {
+ m_log.DebugFormat(
+ "[ASSET SERVER DELETE HANDLER]: Request to delete asset {0}, but type is {1} and allowed remote delete types are {2}",
+ assetID, (AssetFlags)asset.Flags, m_allowedTypes);
+ }
+ }
+ }
}
XmlSerializer xs = new XmlSerializer(typeof(bool));
return ServerUtils.SerializeResult(xs, result);
}
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Services/AssetService/AssetService.cs b/OpenSim/Services/AssetService/AssetService.cs
index 96b430dbf4..f1bffa47b8 100644
--- a/OpenSim/Services/AssetService/AssetService.cs
+++ b/OpenSim/Services/AssetService/AssetService.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Services.AssetService
if (assetLoaderEnabled)
{
- m_log.DebugFormat("[ASSET]: Loading default asset set from {0}", loaderArgs);
+ m_log.DebugFormat("[ASSET SERVICE]: Loading default asset set from {0}", loaderArgs);
m_AssetLoader.ForEachDefaultXmlAsset(
loaderArgs,
@@ -200,20 +200,7 @@ namespace OpenSim.Services.AssetService
if (!UUID.TryParse(id, out assetID))
return false;
- AssetBase asset = m_Database.GetAsset(assetID);
- if (asset == null)
- return false;
-
- if ((int)(asset.Flags & AssetFlags.Maptile) != 0)
- {
- return m_Database.Delete(id);
- }
- else
- {
- m_log.DebugFormat("[ASSET SERVICE]: Request to delete asset {0}, but flags are not Maptile", id);
- }
-
- return false;
+ return m_Database.Delete(id);
}
}
}
\ No newline at end of file
diff --git a/OpenSim/Services/AssetService/XAssetService.cs b/OpenSim/Services/AssetService/XAssetService.cs
index e62bcb556d..a1d10ed5c5 100644
--- a/OpenSim/Services/AssetService/XAssetService.cs
+++ b/OpenSim/Services/AssetService/XAssetService.cs
@@ -194,21 +194,7 @@ namespace OpenSim.Services.AssetService
if (!UUID.TryParse(id, out assetID))
return false;
- AssetBase asset = m_Database.GetAsset(assetID);
- if (asset == null)
- return false;
-
- if ((int)(asset.Flags & AssetFlags.Maptile) != 0)
- {
- return m_Database.Delete(id);
- }
- else
- {
- m_log.DebugFormat("[XASSET SERVICE]: Request to delete asset {0}, but flags are not Maptile", id);
- }
-
- return false;
+ return m_Database.Delete(id);
}
}
-}
-
+}
\ No newline at end of file
diff --git a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs
index 556a0da49c..677bd7b8eb 100644
--- a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs
+++ b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs
@@ -71,7 +71,7 @@ namespace OpenSim.Services.HypergridService
m_ConfigName = configName;
if (m_Database == null)
- m_log.WarnFormat("[XXX]: m_Database is null!");
+ m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: m_Database is null!");
//
// Try reading the [InventoryService] section, if it exists
@@ -301,7 +301,7 @@ namespace OpenSim.Services.HypergridService
public override bool AddFolder(InventoryFolderBase folder)
{
- m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: AddFolder {0} {1}", folder.Name, folder.ParentID);
+ //m_log.WarnFormat("[HG SUITCASE INVENTORY SERVICE]: AddFolder {0} {1}", folder.Name, folder.ParentID);
// Let's do a bit of sanity checking, more than the base service does
// make sure the given folder's parent folder exists under the suitcase tree of this user
@@ -323,7 +323,7 @@ namespace OpenSim.Services.HypergridService
public override bool UpdateFolder(InventoryFolderBase folder)
{
- m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: Update folder {0}, version {1}", folder.ID, folder.Version);
+ //m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: Update folder {0}, version {1}", folder.ID, folder.Version);
if (!IsWithinSuitcaseTree(folder.Owner, folder.ID))
{
m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: folder {0} not within Suitcase tree", folder.Name);
@@ -584,7 +584,7 @@ namespace OpenSim.Services.HypergridService
{
if (a.Wearables[i][j].ItemID == itemID)
{
- m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is a wearable", itemID);
+ //m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is a wearable", itemID);
return true;
}
}
@@ -593,7 +593,7 @@ namespace OpenSim.Services.HypergridService
// Check attachments
if (a.GetAttachmentForItem(itemID) != null)
{
- m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is an attachment", itemID);
+ //m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: item {0} is an attachment", itemID);
return true;
}
diff --git a/bin/Robust.HG.ini.example b/bin/Robust.HG.ini.example
index 82ef44db1e..4ecc6b0040 100644
--- a/bin/Robust.HG.ini.example
+++ b/bin/Robust.HG.ini.example
@@ -485,8 +485,15 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
; *
[HGInventoryService]
; For the InventoryServiceInConnector
- LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService"
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
+ ;; alternatives:
+ ;; HG1.5, more permissive, not recommended, but still supported
+ ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService"
+ ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust
+ ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"
+
UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
+ AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
HomeURI = "http://127.0.0.1:8002"
; * The interface that local users get when they are in other grids.
diff --git a/bin/Robust.ini.example b/bin/Robust.ini.example
index 2eb551d44b..7503c5e0a2 100644
--- a/bin/Robust.ini.example
+++ b/bin/Robust.ini.example
@@ -77,7 +77,19 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
AssetLoaderArgs = "./assets/AssetSets.xml"
- AllowRemoteDelete = "false"
+
+ ; Allow maptile assets to remotely deleted by remote calls to the asset service.
+ ; There is no harm in having this as false - it just means that historical maptile assets are not deleted.
+ ; This only applies to maptiles served via the version 1 viewer mechanisms
+ ; Default is false
+ AllowRemoteDelete = false
+
+ ; Allow all assets to be remotely deleted.
+ ; Only set this to true if you are operating a grid where you control all calls to the asset service
+ ; (where a necessary condition is that you control all simulators) and you need this for admin purposes.
+ ; If set to true, AllowRemoteDelete = true is required as well.
+ ; Default is false.
+ AllowRemoteDeleteAllTypes = false
; * This configuration loads the inventory server modules. It duplicates
; * the function of the legacy inventory server
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index 84de0ecab2..f28de437cd 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -47,36 +47,6 @@
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
AssetLoaderArgs = "assets/AssetSets.xml"
-[HGInventoryService]
- HomeURI = "http://127.0.0.1:9000"
-
-[HGAssetService]
- HomeURI = "http://127.0.0.1:9000"
-
- ;; The asset types that this grid can export to / import from other grids.
- ;; Comma separated.
- ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
- ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText,
- ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh
- ;;
- ;; Leave blank or commented if you don't want to apply any restrictions.
- ;; A more strict, but still reasonable, policy may be to disallow the exchange
- ;; of scripts, like so:
- ; DisallowExport ="LSLText"
- ; DisallowImport ="LSLBytecode"
-
-
-[HGInventoryAccessModule]
- HomeURI = "http://127.0.0.1:9000"
- Gatekeeper = "http://127.0.0.1:9000"
-
- ;; If you want to protect your assets from being copied by foreign visitors
- ;; uncomment the next line. You may want to do this on sims that have licensed content.
- ; OutboundPermission = False
-
-[HGFriendsModule]
- ; User level required to be able to send friendship invitations to foreign users
- ;LevelHGFriends = 0;
[GridService]
;; For in-memory region storage (default)
@@ -97,11 +67,6 @@
;; change this to the address of your simulator
Gatekeeper="http://127.0.0.1:9000"
-[Messaging]
- ; === HG ONLY ===
- ;; change this to the address of your simulator
- Gatekeeper = "http://127.0.0.1:9000"
-
[LibraryModule]
; Set this if you want to change the name of the OpenSim Library
;LibraryName = "My World's Library"
@@ -140,41 +105,6 @@
;AllowedClients = ""
;DeniedClients = ""
-[GatekeeperService]
- ExternalName = "http://127.0.0.1:9000"
-
- ; Does this grid allow incoming links to any region in it?
- ; If false, HG TPs happen only to the Default regions specified in [GridService] section
- AllowTeleportsToAnyRegion = true
-
- ;; Regular expressions for controlling which client versions are accepted/denied.
- ;; An empty string means nothing is checked.
- ;;
- ;; Example 1: allow only these 3 types of clients (any version of them)
- ;; AllowedClients = "Imprudence|Hippo|Second Life"
- ;;
- ;; Example 2: allow all clients except these
- ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
- ;;
- ;; Note that these are regular expressions, so every character counts.
- ;; Also note that this is very weak security and should not be trusted as a reliable means
- ;; for keeping bad clients out; modified clients can fake their identifiers.
- ;;
- ;;
- ;AllowedClients = ""
- ;DeniedClients = ""
-
- ;; Are foreign visitors allowed?
- ;ForeignAgentsAllowed = true
- ;;
- ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.
- ;; Leave blank or commented for no exceptions.
- ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002"
- ;;
- ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept
- ;; Leave blank or commented for no exceptions.
- ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002"
-
[FreeswitchService]
;; If FreeSWITCH is not being used then you don't need to set any of these parameters
@@ -279,6 +209,44 @@
; Example:
; Region_Test_1 = "DisallowForeigners"
+;;
+;; HG configurations
+;;
+[GatekeeperService]
+ ExternalName = "http://127.0.0.1:9000"
+
+ ; Does this grid allow incoming links to any region in it?
+ ; If false, HG TPs happen only to the Default regions specified in [GridService] section
+ AllowTeleportsToAnyRegion = true
+
+ ;; Regular expressions for controlling which client versions are accepted/denied.
+ ;; An empty string means nothing is checked.
+ ;;
+ ;; Example 1: allow only these 3 types of clients (any version of them)
+ ;; AllowedClients = "Imprudence|Hippo|Second Life"
+ ;;
+ ;; Example 2: allow all clients except these
+ ;; DeniedClients = "Twisted|Crawler|Cryolife|FuckLife|StreetLife|GreenLife|AntiLife|KORE-Phaze|Synlyfe|Purple Second Life|SecondLi |Emerald"
+ ;;
+ ;; Note that these are regular expressions, so every character counts.
+ ;; Also note that this is very weak security and should not be trusted as a reliable means
+ ;; for keeping bad clients out; modified clients can fake their identifiers.
+ ;;
+ ;;
+ ;AllowedClients = ""
+ ;DeniedClients = ""
+
+ ;; Are foreign visitors allowed?
+ ;ForeignAgentsAllowed = true
+ ;;
+ ;; If ForeignAgentsAllowed is true, make exceptions using AllowExcept.
+ ;; Leave blank or commented for no exceptions.
+ ; AllowExcept = "http://griefer.com:8002, http://enemy.com:8002"
+ ;;
+ ;; If ForeignAgentsAllowed is false, make exceptions using DisallowExcept
+ ;; Leave blank or commented for no exceptions.
+ ; DisallowExcept = "http://myfriendgrid.com:8002, http://myboss.com:8002"
+
[UserAgentService]
;; User level required to be contacted from other grids
;LevelOutsideContacts = 0
@@ -299,3 +267,57 @@
;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
;; Leave blank or commented for no exceptions.
; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"
+
+[HGInventoryService]
+ HomeURI = "http://127.0.0.1:9000"
+
+[HGAssetService]
+ HomeURI = "http://127.0.0.1:9000"
+
+ ;; The asset types that this grid can export to / import from other grids.
+ ;; Comma separated.
+ ;; Valid values are all the asset types in OpenMetaverse.AssetType, namely:
+ ;; Unknown, Texture, Sound, CallingCard, Landmark, Clothing, Object, Notecard, LSLText,
+ ;; LSLBytecode, TextureTGA, Bodypart, SoundWAV, ImageTGA, ImageJPEG, Animation, Gesture, Mesh
+ ;;
+ ;; Leave blank or commented if you don't want to apply any restrictions.
+ ;; A more strict, but still reasonable, policy may be to disallow the exchange
+ ;; of scripts, like so:
+ ; DisallowExport ="LSLText"
+ ; DisallowImport ="LSLBytecode"
+
+
+[HGInventoryAccessModule]
+ HomeURI = "http://127.0.0.1:9000"
+ Gatekeeper = "http://127.0.0.1:9000"
+
+ ;; If you want to protect your assets from being copied by foreign visitors
+ ;; uncomment the next line. You may want to do this on sims that have licensed content.
+ ;; true = allow exports, false = disallow exports. True by default.
+ ; OutboundPermission = True
+
+ ;; Send visual reminder to local users that their inventories are unavailable while they are traveling
+ ;; and available when they return. True by default.
+ ;RestrictInventoryAccessAbroad = True
+
+[HGFriendsModule]
+ ; User level required to be able to send friendship invitations to foreign users
+ ;LevelHGFriends = 0;
+
+[Messaging]
+ ; === HG ONLY ===
+ ;; change this to the address of your simulator
+ Gatekeeper = "http://127.0.0.1:9000"
+
+
+[EntityTransfer]
+ ;; User level from which local users are allowed to HG teleport. Default 0 (all users)
+ ;LevelHGTeleport = 0
+
+ ;; Are local users restricted from taking their appearance abroad?
+ ;; Default is no restrictions
+ ;RestrictAppearanceAbroad = false
+
+ ;; If appearance is restricted, which accounts' appearances are allowed to be exported?
+ ;; Comma-separated list of account names
+ AccountForAppearance = "Test User, Astronaut Smith"
diff --git a/bin/config-include/StandaloneHypergrid.ini b/bin/config-include/StandaloneHypergrid.ini
index 76d588c5be..195e780ccd 100644
--- a/bin/config-include/StandaloneHypergrid.ini
+++ b/bin/config-include/StandaloneHypergrid.ini
@@ -152,7 +152,13 @@
;; This greatly restricts the inventory operations while in other grids
[HGInventoryService]
; For the InventoryServiceInConnector
- LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService"
+ LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGSuitcaseInventoryService"
+ ;; alternatives:
+ ;; HG1.5, more permissive, not recommended, but still supported
+ ;LocalServiceModule = "OpenSim.Services.HypergridService.dll:HGInventoryService"
+ ;; HG1.0, totally permissive, not recommended, but OK for grids with 100% trust
+ ;LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"
+
UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"