Merge branch 'master' into careminster
commit
d0473b73da
|
@ -259,8 +259,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
|
||||||
if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0)
|
if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0)
|
||||||
{
|
{
|
||||||
// this user is going to another grid
|
// this user is going to another grid
|
||||||
// check if HyperGrid teleport is allowed, based on user level
|
// for local users, check if HyperGrid teleport is allowed, based on user level
|
||||||
if (sp.UserLevel < m_levelHGTeleport)
|
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.");
|
m_log.WarnFormat("[HG ENTITY TRANSFER MODULE]: Unable to HG teleport agent due to insufficient UserLevel.");
|
||||||
reason = "Hypergrid teleport not allowed";
|
reason = "Hypergrid teleport not allowed";
|
||||||
|
|
|
@ -92,7 +92,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
|
||||||
m_HomeURI = thisModuleConfig.GetString("HomeURI", m_HomeURI);
|
m_HomeURI = thisModuleConfig.GetString("HomeURI", m_HomeURI);
|
||||||
m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true);
|
m_OutboundPermission = thisModuleConfig.GetBoolean("OutboundPermission", true);
|
||||||
m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", string.Empty);
|
m_ThisGatekeeper = thisModuleConfig.GetString("Gatekeeper", string.Empty);
|
||||||
m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", false);
|
m_RestrictInventoryAccessAbroad = thisModuleConfig.GetBoolean("RestrictInventoryAccessAbroad", true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
m_log.Warn("[HG INVENTORY ACCESS MODULE]: HGInventoryAccessModule configs not found. ProfileServerURI not set!");
|
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)
|
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)
|
private void ProcessInventoryForLeaving(IClientAPI client)
|
||||||
{
|
{
|
||||||
|
// No-op for now
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) Contributors, http://opensimulator.org/
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
*
|
*
|
||||||
|
@ -532,7 +532,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
if (PhysicsActor != null)
|
if (PhysicsActor != null)
|
||||||
{
|
{
|
||||||
m_velocity = PhysicsActor.TargetVelocity;
|
m_velocity = PhysicsActor.Velocity;
|
||||||
|
|
||||||
// m_log.DebugFormat(
|
// m_log.DebugFormat(
|
||||||
// "[SCENE PRESENCE]: Set velocity {0} for {1} in {2} via getting Velocity!",
|
// "[SCENE PRESENCE]: Set velocity {0} for {1} in {2} via getting Velocity!",
|
||||||
|
@ -547,7 +547,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PhysicsActor.Velocity = value;
|
PhysicsActor.TargetVelocity = value;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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));
|
throw new Exception(String.Format("Failed to load AssetService from {0}; config is {1}", assetService, m_ConfigName));
|
||||||
|
|
||||||
bool allowDelete = serverConfig.GetBoolean("AllowRemoteDelete", false);
|
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 AssetServerGetHandler(m_AssetService));
|
||||||
server.AddStreamHandler(new AssetServerPostHandler(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,
|
MainConsole.Instance.Commands.AddCommand("Assets", false,
|
||||||
"show asset",
|
"show asset",
|
||||||
|
|
|
@ -42,18 +42,32 @@ using OpenSim.Framework.Servers.HttpServer;
|
||||||
|
|
||||||
namespace OpenSim.Server.Handlers.Asset
|
namespace OpenSim.Server.Handlers.Asset
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Remote deletes allowed.
|
||||||
|
/// </summary>
|
||||||
|
public enum AllowedRemoteDeleteTypes
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
MapTile,
|
||||||
|
All
|
||||||
|
}
|
||||||
|
|
||||||
public class AssetServerDeleteHandler : BaseStreamHandler
|
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;
|
private IAssetService m_AssetService;
|
||||||
protected bool m_allowDelete;
|
|
||||||
|
|
||||||
public AssetServerDeleteHandler(IAssetService service, bool allowDelete) :
|
/// <summary>
|
||||||
|
/// Asset types that can be deleted remotely.
|
||||||
|
/// </summary>
|
||||||
|
private AllowedRemoteDeleteTypes m_allowedTypes;
|
||||||
|
|
||||||
|
public AssetServerDeleteHandler(IAssetService service, AllowedRemoteDeleteTypes allowedTypes) :
|
||||||
base("DELETE", "/assets")
|
base("DELETE", "/assets")
|
||||||
{
|
{
|
||||||
m_AssetService = service;
|
m_AssetService = service;
|
||||||
m_allowDelete = allowDelete;
|
m_allowedTypes = allowedTypes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte[] Handle(string path, Stream request,
|
public override byte[] Handle(string path, Stream request,
|
||||||
|
@ -63,13 +77,32 @@ namespace OpenSim.Server.Handlers.Asset
|
||||||
|
|
||||||
string[] p = SplitParams(path);
|
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));
|
XmlSerializer xs = new XmlSerializer(typeof(bool));
|
||||||
return ServerUtils.SerializeResult(xs, result);
|
return ServerUtils.SerializeResult(xs, result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -70,7 +70,7 @@ namespace OpenSim.Services.AssetService
|
||||||
|
|
||||||
if (assetLoaderEnabled)
|
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(
|
m_AssetLoader.ForEachDefaultXmlAsset(
|
||||||
loaderArgs,
|
loaderArgs,
|
||||||
|
@ -200,20 +200,7 @@ namespace OpenSim.Services.AssetService
|
||||||
if (!UUID.TryParse(id, out assetID))
|
if (!UUID.TryParse(id, out assetID))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
AssetBase asset = m_Database.GetAsset(assetID);
|
return m_Database.Delete(id);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -194,21 +194,7 @@ namespace OpenSim.Services.AssetService
|
||||||
if (!UUID.TryParse(id, out assetID))
|
if (!UUID.TryParse(id, out assetID))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
AssetBase asset = m_Database.GetAsset(assetID);
|
return m_Database.Delete(id);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ namespace OpenSim.Services.HypergridService
|
||||||
m_ConfigName = configName;
|
m_ConfigName = configName;
|
||||||
|
|
||||||
if (m_Database == null)
|
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
|
// Try reading the [InventoryService] section, if it exists
|
||||||
|
@ -301,7 +301,7 @@ namespace OpenSim.Services.HypergridService
|
||||||
|
|
||||||
public override bool AddFolder(InventoryFolderBase folder)
|
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
|
// 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
|
// 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)
|
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))
|
if (!IsWithinSuitcaseTree(folder.Owner, folder.ID))
|
||||||
{
|
{
|
||||||
m_log.DebugFormat("[HG SUITCASE INVENTORY SERVICE]: folder {0} not within Suitcase tree", folder.Name);
|
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)
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -593,7 +593,7 @@ namespace OpenSim.Services.HypergridService
|
||||||
// Check attachments
|
// Check attachments
|
||||||
if (a.GetAttachmentForItem(itemID) != null)
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -485,8 +485,15 @@ HGAssetServiceConnector = "HGAssetService@8002/OpenSim.Server.Handlers.dll:Asset
|
||||||
; *
|
; *
|
||||||
[HGInventoryService]
|
[HGInventoryService]
|
||||||
; For the InventoryServiceInConnector
|
; 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"
|
UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||||
|
AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
|
||||||
HomeURI = "http://127.0.0.1:8002"
|
HomeURI = "http://127.0.0.1:8002"
|
||||||
|
|
||||||
; * The interface that local users get when they are in other grids.
|
; * The interface that local users get when they are in other grids.
|
||||||
|
|
|
@ -77,7 +77,19 @@ MapGetServiceConnector = "8002/OpenSim.Server.Handlers.dll:MapGetServiceConnecto
|
||||||
LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
|
LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
|
||||||
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
|
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
|
||||||
AssetLoaderArgs = "./assets/AssetSets.xml"
|
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
|
; * This configuration loads the inventory server modules. It duplicates
|
||||||
; * the function of the legacy inventory server
|
; * the function of the legacy inventory server
|
||||||
|
|
|
@ -47,36 +47,6 @@
|
||||||
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
|
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
|
||||||
AssetLoaderArgs = "assets/AssetSets.xml"
|
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]
|
[GridService]
|
||||||
;; For in-memory region storage (default)
|
;; For in-memory region storage (default)
|
||||||
|
@ -97,11 +67,6 @@
|
||||||
;; change this to the address of your simulator
|
;; change this to the address of your simulator
|
||||||
Gatekeeper="http://127.0.0.1:9000"
|
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]
|
[LibraryModule]
|
||||||
; Set this if you want to change the name of the OpenSim Library
|
; Set this if you want to change the name of the OpenSim Library
|
||||||
;LibraryName = "My World's Library"
|
;LibraryName = "My World's Library"
|
||||||
|
@ -140,41 +105,6 @@
|
||||||
;AllowedClients = ""
|
;AllowedClients = ""
|
||||||
;DeniedClients = ""
|
;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]
|
[FreeswitchService]
|
||||||
;; If FreeSWITCH is not being used then you don't need to set any of these parameters
|
;; If FreeSWITCH is not being used then you don't need to set any of these parameters
|
||||||
|
@ -279,6 +209,44 @@
|
||||||
; Example:
|
; Example:
|
||||||
; Region_Test_1 = "DisallowForeigners"
|
; 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]
|
[UserAgentService]
|
||||||
;; User level required to be contacted from other grids
|
;; User level required to be contacted from other grids
|
||||||
;LevelOutsideContacts = 0
|
;LevelOutsideContacts = 0
|
||||||
|
@ -299,3 +267,57 @@
|
||||||
;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
|
;; If ForeignTripsAllowed is true, make exceptions using AllowExcept.
|
||||||
;; Leave blank or commented for no exceptions.
|
;; Leave blank or commented for no exceptions.
|
||||||
; AllowExcept_Level_200 = "http://griefer.com:8002, http://enemy.com:8002"
|
; 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"
|
||||||
|
|
|
@ -152,7 +152,13 @@
|
||||||
;; This greatly restricts the inventory operations while in other grids
|
;; This greatly restricts the inventory operations while in other grids
|
||||||
[HGInventoryService]
|
[HGInventoryService]
|
||||||
; For the InventoryServiceInConnector
|
; 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"
|
UserAccountsService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||||
AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
|
AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue