Added the beginning of a new test framework for robust connectors and services. For now, just Grid and Presence. This framework starts a robust server (as a thread) listening on a port in localhost, then the tests are client code.
parent
05737a1010
commit
c2cf22ea4f
|
@ -82,7 +82,9 @@ namespace OpenSim.Server.Base
|
||||||
argvConfig.AddSwitch("Startup", "logconfig", "g");
|
argvConfig.AddSwitch("Startup", "logconfig", "g");
|
||||||
|
|
||||||
// Automagically create the ini file name
|
// Automagically create the ini file name
|
||||||
string fileName = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location);
|
string fileName = "";
|
||||||
|
if (Assembly.GetEntryAssembly() != null)
|
||||||
|
fileName = Path.GetFileNameWithoutExtension(Assembly.GetEntryAssembly().Location);
|
||||||
string iniFile = fileName + ".ini";
|
string iniFile = fileName + ".ini";
|
||||||
string logConfig = null;
|
string logConfig = null;
|
||||||
|
|
||||||
|
@ -158,7 +160,11 @@ namespace OpenSim.Server.Base
|
||||||
MainConsole.Instance = new RemoteConsole(prompt);
|
MainConsole.Instance = new RemoteConsole(prompt);
|
||||||
((RemoteConsole)MainConsole.Instance).ReadConfig(Config);
|
((RemoteConsole)MainConsole.Instance).ReadConfig(Config);
|
||||||
}
|
}
|
||||||
else
|
else if (consoleType == "mock")
|
||||||
|
{
|
||||||
|
MainConsole.Instance = new MockConsole();
|
||||||
|
}
|
||||||
|
else if (consoleType == "local")
|
||||||
{
|
{
|
||||||
MainConsole.Instance = new LocalConsole(prompt, startupConfig);
|
MainConsole.Instance = new LocalConsole(prompt, startupConfig);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,133 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the OpenSimulator Project nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
using OpenMetaverse;
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Services.Interfaces;
|
||||||
|
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
|
||||||
|
using OpenSim.Services.Connectors;
|
||||||
|
|
||||||
|
namespace Robust.Tests
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class GridClient
|
||||||
|
{
|
||||||
|
// private static readonly ILog m_log =
|
||||||
|
// LogManager.GetLogger(
|
||||||
|
// MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Grid_001()
|
||||||
|
{
|
||||||
|
GridServicesConnector m_Connector = new GridServicesConnector(DemonServer.Address);
|
||||||
|
|
||||||
|
GridRegion r1 = CreateRegion("Test Region 1", 1000, 1000);
|
||||||
|
GridRegion r2 = CreateRegion("Test Region 2", 1001, 1000);
|
||||||
|
GridRegion r3 = CreateRegion("Test Region 3", 1005, 1000);
|
||||||
|
|
||||||
|
string msg = m_Connector.RegisterRegion(UUID.Zero, r1);
|
||||||
|
Assert.AreEqual(msg, string.Empty, "Region 1 failed to register");
|
||||||
|
|
||||||
|
msg = m_Connector.RegisterRegion(UUID.Zero, r2);
|
||||||
|
Assert.AreEqual(msg, string.Empty, "Region 2 failed to register");
|
||||||
|
|
||||||
|
msg = m_Connector.RegisterRegion(UUID.Zero, r3);
|
||||||
|
Assert.AreEqual(msg, string.Empty, "Region 3 failed to register");
|
||||||
|
|
||||||
|
bool success;
|
||||||
|
success = m_Connector.DeregisterRegion(r3.RegionID);
|
||||||
|
Assert.AreEqual(success, true, "Region 3 failed to deregister");
|
||||||
|
|
||||||
|
msg = m_Connector.RegisterRegion(UUID.Zero, r3);
|
||||||
|
Assert.AreEqual(msg, string.Empty, "Region 3 failed to re-register");
|
||||||
|
|
||||||
|
List<GridRegion> regions = m_Connector.GetNeighbours(UUID.Zero, r1.RegionID);
|
||||||
|
Assert.AreNotEqual(regions, null, "GetNeighbours of region 1 failed");
|
||||||
|
Assert.AreEqual(regions.Count, 1, "Region 1 should have 1 neighbor");
|
||||||
|
Assert.AreEqual(regions[0].RegionName, "Test Region 2", "Region 1 has the wrong neighbor");
|
||||||
|
|
||||||
|
GridRegion region = m_Connector.GetRegionByUUID(UUID.Zero, r2.RegionID);
|
||||||
|
Assert.AreNotEqual(region, null, "GetRegionByUUID for region 2 failed");
|
||||||
|
Assert.AreEqual(region.RegionName, "Test Region 2", "GetRegionByUUID of region 2 returned wrong region");
|
||||||
|
|
||||||
|
region = m_Connector.GetRegionByUUID(UUID.Zero, UUID.Random());
|
||||||
|
Assert.AreEqual(region, null, "Region with randon id should not exist");
|
||||||
|
|
||||||
|
region = m_Connector.GetRegionByName(UUID.Zero, r3.RegionName);
|
||||||
|
Assert.AreNotEqual(region, null, "GetRegionByUUID for region 3 failed");
|
||||||
|
Assert.AreEqual(region.RegionName, "Test Region 3", "GetRegionByUUID of region 3 returned wrong region");
|
||||||
|
|
||||||
|
region = m_Connector.GetRegionByName(UUID.Zero, "Foo");
|
||||||
|
Assert.AreEqual(region, null, "Region Foo should not exist");
|
||||||
|
|
||||||
|
regions = m_Connector.GetRegionsByName(UUID.Zero, "Test", 10);
|
||||||
|
Assert.AreNotEqual(regions, null, "GetRegionsByName failed");
|
||||||
|
Assert.AreEqual(regions.Count, 3, "GetRegionsByName should return 3");
|
||||||
|
|
||||||
|
regions = m_Connector.GetRegionRange(UUID.Zero,
|
||||||
|
(int)Util.RegionToWorldLoc(900), (int)Util.RegionToWorldLoc(1002),
|
||||||
|
(int)Util.RegionToWorldLoc(900), (int)Util.RegionToWorldLoc(1002) );
|
||||||
|
Assert.AreNotEqual(regions, null, "GetRegionRange failed");
|
||||||
|
Assert.AreEqual(regions.Count, 2, "GetRegionRange should return 2");
|
||||||
|
|
||||||
|
regions = m_Connector.GetRegionRange(UUID.Zero,
|
||||||
|
(int)Util.RegionToWorldLoc(900), (int)Util.RegionToWorldLoc(950),
|
||||||
|
(int)Util.RegionToWorldLoc(900), (int)Util.RegionToWorldLoc(950) );
|
||||||
|
Assert.AreNotEqual(regions, null, "GetRegionRange (bis) failed");
|
||||||
|
Assert.AreEqual(regions.Count, 0, "GetRegionRange (bis) should return 0");
|
||||||
|
|
||||||
|
// Deregister them all
|
||||||
|
success = m_Connector.DeregisterRegion(r1.RegionID);
|
||||||
|
Assert.AreEqual(success, true, "Region 1 failed to deregister");
|
||||||
|
|
||||||
|
success = m_Connector.DeregisterRegion(r2.RegionID);
|
||||||
|
Assert.AreEqual(success, true, "Region 2 failed to deregister");
|
||||||
|
|
||||||
|
success = m_Connector.DeregisterRegion(r3.RegionID);
|
||||||
|
Assert.AreEqual(success, true, "Region 3 failed to deregister");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static GridRegion CreateRegion(string name, uint xcell, uint ycell)
|
||||||
|
{
|
||||||
|
GridRegion region = new GridRegion(xcell, ycell);
|
||||||
|
region.RegionName = name;
|
||||||
|
region.RegionID = UUID.Random();
|
||||||
|
region.ExternalHostName = "127.0.0.1";
|
||||||
|
region.HttpPort = 9000;
|
||||||
|
region.InternalEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Parse("0.0.0.0"), 9000);
|
||||||
|
|
||||||
|
return region;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the OpenSimulator Project nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
using OpenMetaverse;
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Services.Interfaces;
|
||||||
|
using OpenSim.Services.Connectors;
|
||||||
|
|
||||||
|
namespace Robust.Tests
|
||||||
|
{
|
||||||
|
[TestFixture]
|
||||||
|
public class PresenceClient
|
||||||
|
{
|
||||||
|
[Test]
|
||||||
|
public void Presence_001()
|
||||||
|
{
|
||||||
|
PresenceServicesConnector m_Connector = new PresenceServicesConnector(DemonServer.Address);
|
||||||
|
|
||||||
|
UUID user1 = UUID.Random();
|
||||||
|
UUID session1 = UUID.Random();
|
||||||
|
UUID region1 = UUID.Random();
|
||||||
|
|
||||||
|
bool success = m_Connector.LoginAgent(user1.ToString(), session1, UUID.Zero);
|
||||||
|
Assert.AreEqual(success, true, "Failed to add user session");
|
||||||
|
|
||||||
|
PresenceInfo pinfo = m_Connector.GetAgent(session1);
|
||||||
|
Assert.AreNotEqual(pinfo, null, "Unable to retrieve session");
|
||||||
|
Assert.AreEqual(pinfo.UserID, user1.ToString(), "Retrieved session does not match expected userID");
|
||||||
|
Assert.AreNotEqual(pinfo.RegionID, region1, "Retrieved session is unexpectedly in region");
|
||||||
|
|
||||||
|
success = m_Connector.ReportAgent(session1, region1);
|
||||||
|
Assert.AreEqual(success, true, "Failed to report session in region 1");
|
||||||
|
|
||||||
|
pinfo = m_Connector.GetAgent(session1);
|
||||||
|
Assert.AreNotEqual(pinfo, null, "Unable to session presence");
|
||||||
|
Assert.AreEqual(pinfo.UserID, user1.ToString(), "Retrieved session does not match expected userID");
|
||||||
|
Assert.AreEqual(pinfo.RegionID, region1, "Retrieved session is not in expected region");
|
||||||
|
|
||||||
|
success = m_Connector.LogoutAgent(session1);
|
||||||
|
Assert.AreEqual(success, true, "Failed to remove session");
|
||||||
|
|
||||||
|
pinfo = m_Connector.GetAgent(session1);
|
||||||
|
Assert.AreEqual(pinfo, null, "Session is still there, even though it shouldn't");
|
||||||
|
|
||||||
|
success = m_Connector.ReportAgent(session1, UUID.Random());
|
||||||
|
Assert.AreEqual(success, false, "Remove non-existing session should fail");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) Contributors, http://opensimulator.org/
|
||||||
|
* See CONTRIBUTORS.TXT for a full list of copyright holders.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions are met:
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* * Neither the name of the OpenSimulator Project nor the
|
||||||
|
* names of its contributors may be used to endorse or promote products
|
||||||
|
* derived from this software without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
|
||||||
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
|
||||||
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
|
using Nini.Config;
|
||||||
|
using log4net;
|
||||||
|
using NUnit.Framework;
|
||||||
|
|
||||||
|
using OpenSim.Server;
|
||||||
|
|
||||||
|
namespace Robust.Tests
|
||||||
|
{
|
||||||
|
[SetUpFixture]
|
||||||
|
public class DemonServer : OpenSimServer
|
||||||
|
{
|
||||||
|
private Thread m_demon;
|
||||||
|
|
||||||
|
public static string Address = "http://localhost:8888";
|
||||||
|
|
||||||
|
[SetUp]
|
||||||
|
public void StartDemon()
|
||||||
|
{
|
||||||
|
if (File.Exists("Robust.Tests.log"))
|
||||||
|
File.Delete("Robust.Tests.log");
|
||||||
|
|
||||||
|
Console.WriteLine("**** Starting demon Robust server ****");
|
||||||
|
m_demon = new Thread( () => Main(new string[] {"-inifile=Robust.Tests.ini"}));
|
||||||
|
m_demon.Start();
|
||||||
|
Console.WriteLine("**** Setup Finished ****");
|
||||||
|
}
|
||||||
|
|
||||||
|
[TearDown]
|
||||||
|
public void StopDemon()
|
||||||
|
{
|
||||||
|
Console.WriteLine("**** Killing demon Robust Server ****");
|
||||||
|
m_Server.Shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
|
||||||
|
</configSections>
|
||||||
|
<runtime>
|
||||||
|
<loadFromRemoteSources enabled="true" />
|
||||||
|
<gcConcurrent enabled="true" />
|
||||||
|
<gcServer enabled="true" />
|
||||||
|
</runtime>
|
||||||
|
<appSettings>
|
||||||
|
</appSettings>
|
||||||
|
<log4net>
|
||||||
|
<appender name="Console" type="OpenSim.Framework.Console.OpenSimAppender, OpenSim.Framework.Console">
|
||||||
|
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||||
|
<loggerToMatch value="special"/>
|
||||||
|
<acceptOnMatch value="false"/>
|
||||||
|
</filter>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="%date{HH:mm:ss} - %message" />
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
|
||||||
|
<file value="Robust.Tests.log" />
|
||||||
|
<appendToFile value="true" />
|
||||||
|
<filter type="log4net.Filter.LoggerMatchFilter">
|
||||||
|
<loggerToMatch value="special"/>
|
||||||
|
<acceptOnMatch value="false"/>
|
||||||
|
</filter>
|
||||||
|
<layout type="log4net.Layout.PatternLayout">
|
||||||
|
<conversionPattern value="%date %-5level - %logger %message%newline" />
|
||||||
|
</layout>
|
||||||
|
</appender>
|
||||||
|
|
||||||
|
<root>
|
||||||
|
<level value="DEBUG" />
|
||||||
|
<appender-ref ref="Console" />
|
||||||
|
<appender-ref ref="LogFileAppender" />
|
||||||
|
</root>
|
||||||
|
|
||||||
|
</log4net>
|
||||||
|
</configuration>
|
|
@ -0,0 +1,495 @@
|
||||||
|
; * FOR TESTS ONLY -- DO NOT USE THIS FILE
|
||||||
|
[Const]
|
||||||
|
|
||||||
|
; The URL of the Robust server
|
||||||
|
BaseURL = "http://127.0.0.1"
|
||||||
|
|
||||||
|
; The public port of the Robust server
|
||||||
|
PublicPort = "8888"
|
||||||
|
|
||||||
|
; The private port of the Robust server, same for testing
|
||||||
|
PrivatePort = "8888"
|
||||||
|
|
||||||
|
|
||||||
|
; * The startup section lists all the connectors to start up in this server
|
||||||
|
; * instance. This may be only one, or it may be the entire server suite.
|
||||||
|
; * Multiple connectors should be separated by commas.
|
||||||
|
; *
|
||||||
|
; * These are the IN connectors the server uses, the in connectors
|
||||||
|
; * read this config file and load the needed service and database connectors
|
||||||
|
; *
|
||||||
|
; * The full syntax of a connector string is:
|
||||||
|
; * [[<ConfigName>@]<port>/]<dll name>[:<class name>]
|
||||||
|
; *
|
||||||
|
[Startup]
|
||||||
|
; Place to create a PID file
|
||||||
|
; If no path if specified then a PID file is not created.
|
||||||
|
; PIDFile = "/tmp/Robust.exe.pid"
|
||||||
|
|
||||||
|
; Plugin Registry Location
|
||||||
|
; Set path to directory for plugin registry. Information
|
||||||
|
; about the registered repositories and installed plugins
|
||||||
|
; will be stored here
|
||||||
|
; The Robust.exe process must have R/W access to the location
|
||||||
|
RegistryLocation = "."
|
||||||
|
|
||||||
|
; Modular configurations
|
||||||
|
; Set path to directory for modular ini files...
|
||||||
|
; The Robust.exe process must have R/W access to the location
|
||||||
|
ConfigDirectory = "."
|
||||||
|
|
||||||
|
console = "rest"
|
||||||
|
|
||||||
|
; Console commands can be saved to a file, so the command history persists after a restart. (default is true)
|
||||||
|
ConsoleHistoryFileEnabled = false
|
||||||
|
|
||||||
|
; The history file can be just a filename (relative to OpenSim's bin/ directory
|
||||||
|
; or it can be a full path to somewhere else. (default is OpenSimConsoleHistory.txt in bin/)
|
||||||
|
ConsoleHistoryFile = "RobustConsoleHistory.txt"
|
||||||
|
|
||||||
|
; How many lines of command history should we keep? (default is 100)
|
||||||
|
ConsoleHistoryFileLines = 100
|
||||||
|
|
||||||
|
[ServiceList]
|
||||||
|
GridServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridServiceConnector"
|
||||||
|
PresenceServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:PresenceServiceConnector"
|
||||||
|
|
||||||
|
;InventoryInConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XInventoryInConnector"
|
||||||
|
;UserAccountServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
|
||||||
|
|
||||||
|
;; Uncomment as more tests are added
|
||||||
|
;AssetServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AssetServiceConnector"
|
||||||
|
;GridInfoServerInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:GridInfoServerInConnector"
|
||||||
|
;AuthenticationServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AuthenticationServiceConnector"
|
||||||
|
;OpenIdServerConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:OpenIdServerConnector"
|
||||||
|
;AvatarServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:AvatarServiceConnector"
|
||||||
|
;LLLoginServiceInConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:LLLoginServiceInConnector"
|
||||||
|
;GridUserServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:GridUserServiceConnector"
|
||||||
|
;FriendsServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:FriendsServiceConnector"
|
||||||
|
;MapAddServiceConnector = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:MapAddServiceConnector"
|
||||||
|
;MapGetServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:MapGetServiceConnector"
|
||||||
|
;OfflineIMServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.OfflineIM.dll:OfflineIMServiceRobustConnector"
|
||||||
|
;GroupsServiceConnector = "${Const|PrivatePort}/OpenSim.Addons.Groups.dll:GroupsServiceRobustConnector"
|
||||||
|
;BakedTextureService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:XBakesConnector"
|
||||||
|
;UserProfilesServiceConnector = "${Const|PublicPort}/OpenSim.Server.Handlers.dll:UserProfilesConnector"
|
||||||
|
;EstateDataService = "${Const|PrivatePort}/OpenSim.Server.Handlers.dll:EstateDataRobustConnector"
|
||||||
|
|
||||||
|
; * This is common for all services, it's the network setup for the entire
|
||||||
|
; * server instance, if none is specified above
|
||||||
|
; *
|
||||||
|
[Network]
|
||||||
|
port = ${Const|PrivatePort}
|
||||||
|
|
||||||
|
;; The follow 3 variables are for HTTP Basic Authentication for the Robust services.
|
||||||
|
;; Use this if your central services in port ${Const|PrivatePort} need to be accessible on the Internet
|
||||||
|
;; but you want to protect them from unauthorized access.
|
||||||
|
; AuthType = "BasicHttpAuthentication"
|
||||||
|
; HttpAuthUsername = "some_username"
|
||||||
|
; HttpAuthPassword = "some_password"
|
||||||
|
;;
|
||||||
|
;; AuthType above can be overriden in any of the service sections below by
|
||||||
|
; AuthType = "None"
|
||||||
|
;; This is useful in cases where you want to protect most of the services,
|
||||||
|
;; but unprotect individual services. Username and Password can also be
|
||||||
|
;; overriden if you want to use different credentials for the different services.
|
||||||
|
|
||||||
|
;; By default, scripts are not allowed to call private services via llHttpRequest()
|
||||||
|
;; Such calls are detected by the X-SecondLife-Shared HTTP header
|
||||||
|
;; If you allow such calls you must be sure that they are restricted to very trusted scripters
|
||||||
|
;; (remember scripts can also be in visiting avatar attachments).
|
||||||
|
;; This can be overriden in individual private service sections if necessary
|
||||||
|
AllowllHTTPRequestIn = false
|
||||||
|
|
||||||
|
; * The following are for the remote console
|
||||||
|
; * They have no effect for the local or basic console types
|
||||||
|
; * Leave commented to diable logins to the console
|
||||||
|
;ConsoleUser = Test
|
||||||
|
;ConsolePass = secret
|
||||||
|
;ConsolePort = 0
|
||||||
|
|
||||||
|
|
||||||
|
[DatabaseService]
|
||||||
|
; PGSQL
|
||||||
|
; Uncomment these lines if you want to use PGSQL storage
|
||||||
|
; Change the connection string to your db details
|
||||||
|
;StorageProvider = "OpenSim.Data.PGSQL.dll"
|
||||||
|
;ConnectionString = "Server=localhost;Database=opensim;User Id=opensim; password=***;"
|
||||||
|
|
||||||
|
; Null
|
||||||
|
; Uncomment these lines if you want to use MySQL storage
|
||||||
|
; Change the connection string to your db details
|
||||||
|
StorageProvider = "OpenSim.Data.Null.dll"
|
||||||
|
ConnectionString = ""
|
||||||
|
|
||||||
|
|
||||||
|
; * As an example, the below configuration precisely mimicks the legacy
|
||||||
|
; * asset server. It is read by the asset IN connector (defined above)
|
||||||
|
; * and it then loads the OUT connector (a local database module). That,
|
||||||
|
; * in turn, reads the asset loader and database connection information
|
||||||
|
; *
|
||||||
|
[AssetService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService"
|
||||||
|
DefaultAssetLoader = ""
|
||||||
|
|
||||||
|
; 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
|
||||||
|
; *
|
||||||
|
[InventoryService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.InventoryService.dll:XInventoryService"
|
||||||
|
|
||||||
|
; Will calls to purge folders (empty trash) and immediately delete/update items or folders (not move to trash first) succeed?
|
||||||
|
; If this is set to false then some other arrangement must be made to perform these operations if necessary.
|
||||||
|
AllowDelete = true
|
||||||
|
|
||||||
|
|
||||||
|
; * This is the new style grid service.
|
||||||
|
; * "Realm" is the table that is used for user lookup.
|
||||||
|
; * It defaults to "regions", which uses the legacy tables
|
||||||
|
; *
|
||||||
|
[GridService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
|
||||||
|
; Realm = "regions"
|
||||||
|
; AllowDuplicateNames = "True"
|
||||||
|
|
||||||
|
;; Next, we can specify properties of regions, including default and fallback regions
|
||||||
|
;; The syntax is: Region_<RegionName> = "<flags>"
|
||||||
|
;; or: Region_<RegionID> = "<flags>"
|
||||||
|
;; where <flags> can be DefaultRegion, DefaultHGRegion, FallbackRegion, NoDirectLogin, Persistent, LockedOut, Reservation, NoMove, Authenticate
|
||||||
|
;;
|
||||||
|
;; DefaultRegion If a local login cannot be placed in the required region (e.g. home region does not exist, avatar is not allowed entry, etc.)
|
||||||
|
;; then this region becomes the destination. Only the first online default region will be used. If no DefaultHGRegion
|
||||||
|
;; is specified then this will also be used as the region for hypergrid connections that require it (commonly because they have not specified
|
||||||
|
;; an explicit region.
|
||||||
|
;;
|
||||||
|
;; DefaultHGRegion If an avatar connecting via the hypergrid does not specify a region, then they are placed here. Only the first online
|
||||||
|
;; region will be used.
|
||||||
|
;;
|
||||||
|
;; FallbackRegion If the DefaultRegion is not available for a local login, then any FallbackRegions are tried instead. These are tried in the
|
||||||
|
;; order specified. This only applies to local logins at this time, not Hypergrid connections.
|
||||||
|
;;
|
||||||
|
;; NoDirectLogin A hypergrid user cannot directly connect to this region. This does not apply to local logins.
|
||||||
|
;;
|
||||||
|
;; Persistent When the simulator is shutdown, the region is signalled as offline but left registered on the grid.
|
||||||
|
;;
|
||||||
|
;; Example specification:
|
||||||
|
; Region_Welcome_Area = "DefaultRegion, FallbackRegion"
|
||||||
|
; (replace spaces with underscore)
|
||||||
|
|
||||||
|
;; Allow supporting viewers to export content
|
||||||
|
;; Set to false to prevent export
|
||||||
|
ExportSupported = true
|
||||||
|
|
||||||
|
|
||||||
|
; * This is the configuration for the freeswitch server in grid mode
|
||||||
|
[FreeswitchService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.FreeswitchService.dll:FreeswitchService"
|
||||||
|
|
||||||
|
;; The IP address of your FreeSWITCH server.
|
||||||
|
;; This address must be reachable by viewers.
|
||||||
|
; ServerAddress = 127.0.0.1
|
||||||
|
|
||||||
|
;; The following configuration parameters are optional
|
||||||
|
|
||||||
|
;; By default, this is the same as the ServerAddress
|
||||||
|
; Realm = 127.0.0.1
|
||||||
|
|
||||||
|
;; By default, this is the same as the ServerAddress on port 5060
|
||||||
|
; SIPProxy = 127.0.0.1:5060
|
||||||
|
|
||||||
|
;; Default is 5000ms
|
||||||
|
; DefaultTimeout = 5000
|
||||||
|
|
||||||
|
;; The dial plan context. Default is "default"
|
||||||
|
; Context = default
|
||||||
|
|
||||||
|
;; Currently unused
|
||||||
|
; UserName = freeswitch
|
||||||
|
|
||||||
|
;; Currently unused
|
||||||
|
; Password = password
|
||||||
|
|
||||||
|
;; The following parameters are for STUN = Simple Traversal of UDP through NATs
|
||||||
|
;; See http://wiki.freeswitch.org/wiki/NAT_Traversal
|
||||||
|
;; stun.freeswitch.org is not guaranteed to be running so use it in
|
||||||
|
;; production at your own risk
|
||||||
|
; EchoServer = 127.0.0.1
|
||||||
|
; EchoPort = 50505
|
||||||
|
; AttemptSTUN = false
|
||||||
|
|
||||||
|
|
||||||
|
; * This is the new style authentication service. Currently, only MySQL
|
||||||
|
; * is implemented.
|
||||||
|
; *
|
||||||
|
[AuthenticationService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
|
||||||
|
|
||||||
|
;; Allow the service to process HTTP getauthinfo calls.
|
||||||
|
;; Default is false.
|
||||||
|
; AllowGetAuthInfo = false
|
||||||
|
|
||||||
|
;; Allow the service to process HTTP setauthinfo calls.
|
||||||
|
;; Default is false.
|
||||||
|
; AllowSetAuthInfo = false
|
||||||
|
|
||||||
|
;; Allow the service to process HTTP setpassword calls.
|
||||||
|
;; Default is false.
|
||||||
|
; AllowSetPassword = false
|
||||||
|
|
||||||
|
|
||||||
|
[OpenIdService]
|
||||||
|
; for the server connector
|
||||||
|
AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
|
||||||
|
UserAccountServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||||
|
|
||||||
|
|
||||||
|
; * This is the new style authentication service. Currently, only MySQL
|
||||||
|
; * is implemented. "Realm" is the table that is used for user lookup.
|
||||||
|
; * It defaults to "useraccounts", which uses the new style.
|
||||||
|
; * Realm = "users" will use the legacy tables as an authentication source
|
||||||
|
; *
|
||||||
|
[UserAccountService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||||
|
; Realm = "useraccounts"
|
||||||
|
|
||||||
|
; These are for creating new accounts by the service
|
||||||
|
AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
|
||||||
|
PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
|
||||||
|
GridService = "OpenSim.Services.GridService.dll:GridService"
|
||||||
|
InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
|
||||||
|
AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
|
||||||
|
GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
|
||||||
|
|
||||||
|
;; This switch creates the minimum set of body parts and avatar entries for a viewer 2
|
||||||
|
;; to show a default "Ruth" avatar rather than a cloud for a newly created user.
|
||||||
|
;; Default is false
|
||||||
|
CreateDefaultAvatarEntries = true
|
||||||
|
|
||||||
|
;; Allow the service to process HTTP createuser calls.
|
||||||
|
;; Default is false.
|
||||||
|
; AllowCreateUser = false
|
||||||
|
|
||||||
|
;; Allow the service to process HTTP setaccount calls.
|
||||||
|
;; Default is false.
|
||||||
|
; AllowSetAccount = false
|
||||||
|
|
||||||
|
|
||||||
|
[GridUserService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.UserAccountService.dll:GridUserService"
|
||||||
|
|
||||||
|
|
||||||
|
[PresenceService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.PresenceService.dll:PresenceService"
|
||||||
|
; Set this to true to allow the use of advanced web services and multiple
|
||||||
|
; bots using one account
|
||||||
|
AllowDuplicatePresences = false;
|
||||||
|
|
||||||
|
|
||||||
|
[AvatarService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.AvatarService.dll:AvatarService"
|
||||||
|
|
||||||
|
|
||||||
|
[FriendsService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.FriendsService.dll:FriendsService"
|
||||||
|
|
||||||
|
[EstateService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.EstateService.dll:EstateDataService"
|
||||||
|
|
||||||
|
[LibraryService]
|
||||||
|
LibraryName = "OpenSim Library"
|
||||||
|
DefaultLibrary = "./inventory/Libraries.xml"
|
||||||
|
|
||||||
|
|
||||||
|
[LoginService]
|
||||||
|
; for the server connector
|
||||||
|
LocalServiceModule = "OpenSim.Services.LLLoginService.dll:LLLoginService"
|
||||||
|
; for the service
|
||||||
|
UserAccountService = "OpenSim.Services.UserAccountService.dll:UserAccountService"
|
||||||
|
GridUserService = "OpenSim.Services.UserAccountService.dll:GridUserService"
|
||||||
|
AuthenticationService = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
|
||||||
|
InventoryService = "OpenSim.Services.InventoryService.dll:XInventoryService"
|
||||||
|
AvatarService = "OpenSim.Services.AvatarService.dll:AvatarService"
|
||||||
|
PresenceService = "OpenSim.Services.PresenceService.dll:PresenceService"
|
||||||
|
GridService = "OpenSim.Services.GridService.dll:GridService"
|
||||||
|
SimulationService ="OpenSim.Services.Connectors.dll:SimulationServiceConnector"
|
||||||
|
LibraryService = "OpenSim.Services.InventoryService.dll:LibraryService"
|
||||||
|
FriendsService = "OpenSim.Services.FriendsService.dll:FriendsService"
|
||||||
|
|
||||||
|
; The minimum user level required for a user to be able to login. 0 by default
|
||||||
|
; If you disable a particular user's account then you can set their login level below this number.
|
||||||
|
; You can also change this level from the console though these changes will not be persisted.
|
||||||
|
; MinLoginLevel = 0
|
||||||
|
|
||||||
|
; Ask co-operative viewers to use a different currency name
|
||||||
|
;Currency = ""
|
||||||
|
|
||||||
|
;; Set minimum fee to publish classified
|
||||||
|
; ClassifiedFee = 0
|
||||||
|
|
||||||
|
WelcomeMessage = "Welcome, Avatar!"
|
||||||
|
AllowRemoteSetLoginLevel = "false"
|
||||||
|
|
||||||
|
; For V2 map
|
||||||
|
MapTileURL = "${Const|BaseURL}:${Const|PublicPort}/";
|
||||||
|
|
||||||
|
; Url to search service
|
||||||
|
; SearchURL = "${Const|BaseURL}:${Const|PublicPort}/";
|
||||||
|
|
||||||
|
; For V3 destination guide
|
||||||
|
; DestinationGuide = "${Const|BaseURL}/guide"
|
||||||
|
|
||||||
|
; For V3 avatar picker (( work in progress ))
|
||||||
|
; AvatarPicker = "${Const|BaseURL}/avatars"
|
||||||
|
|
||||||
|
; If you run this login server behind a proxy, set this to true
|
||||||
|
; HasProxy = false
|
||||||
|
|
||||||
|
;; 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 = ""
|
||||||
|
|
||||||
|
;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
|
||||||
|
;; Viewers do not listen to timezone sent by the server. They use Pacific Standard Time instead,
|
||||||
|
;; but rely on the server to calculate Daylight Saving Time. Sending another DST than US Pacific
|
||||||
|
;; would result in time inconsistencies between grids (during summer and around DST transition period)
|
||||||
|
;; default let OpenSim calculate US Pacific DST
|
||||||
|
;; "none" disable DST (equivallent to "local" with system set to GMT)
|
||||||
|
;; "local" force legacy behaviour (using local system time to calculate DST)
|
||||||
|
; DSTZone = "America/Los_Angeles;Pacific Standard Time"
|
||||||
|
|
||||||
|
;# {DSTZone} {} {Override Daylight Saving Time rules} {* none local} "America/Los_Angeles;Pacific Standard Time"
|
||||||
|
;; Viewers do not receive timezone information from the server - almost all (?) default to Pacific Standard Time
|
||||||
|
;; However, they do rely on the server to tell them whether it's Daylight Saving Time or not.
|
||||||
|
;; Hence, calculating DST based on a different timezone can result in a misleading viewer display and inconsistencies between grids.
|
||||||
|
;; By default, this setting uses various timezone names to calculate DST with regards to the viewer's standard PST.
|
||||||
|
;; Options are
|
||||||
|
;; "none" no DST
|
||||||
|
;; "local" use the server's only timezone to calculate DST. This is previous OpenSimulator behaviour.
|
||||||
|
;; "America/Los_Angeles;Pacific Standard Time" use these timezone names to look up Daylight savings.
|
||||||
|
;; 'America/Los_Angeles' is used on Linux/Mac systems whilst 'Pacific Standard Time' is used on Windows
|
||||||
|
DSTZone = "America/Los_Angeles;Pacific Standard Time"
|
||||||
|
|
||||||
|
;Basic Login Service Dos Protection Tweaks
|
||||||
|
;;
|
||||||
|
;; Some Grids/Users use a transparent proxy that makes use of the X-Forwarded-For HTTP Header, If you do, set this to true
|
||||||
|
;; If you set this to true and you don't have a transparent proxy, it may allow attackers to put random things in the X-Forwarded-For header to
|
||||||
|
;; get around this basic DOS protection.
|
||||||
|
;DOSAllowXForwardedForHeader = false
|
||||||
|
;;
|
||||||
|
;; The protector adds up requests during this rolling period of time, default 10 seconds
|
||||||
|
;DOSRequestTimeFrameMS = 10000
|
||||||
|
;;
|
||||||
|
;; The amount of requests in the above timeframe from the same endpoint that triggers protection
|
||||||
|
;DOSMaxRequestsInTimeFrame = 5
|
||||||
|
;;
|
||||||
|
;; The amount of time that a specific endpoint is blocked. Default 2 minutes.
|
||||||
|
;DOSForgiveClientAfterMS = 120000
|
||||||
|
;;
|
||||||
|
;; To turn off basic dos protection, set the DOSMaxRequestsInTimeFrame to 0.
|
||||||
|
|
||||||
|
|
||||||
|
[MapImageService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.MapImageService.dll:MapImageService"
|
||||||
|
|
||||||
|
; Set this if you want to change the default
|
||||||
|
; TilesStoragePath = "maptiles"
|
||||||
|
;
|
||||||
|
; If for some reason you have the AddMapTile service outside the firewall (e.g. ${Const|PublicPort}),
|
||||||
|
; you may want to set this. Otherwise, don't set it, because it's already protected.
|
||||||
|
; GridService = "OpenSim.Services.GridService.dll:GridService"
|
||||||
|
;
|
||||||
|
; Additionally, if you run this server behind a proxy, set this to true
|
||||||
|
; HasProxy = false
|
||||||
|
|
||||||
|
|
||||||
|
[Messaging]
|
||||||
|
; OfflineIM
|
||||||
|
OfflineIMService = "OpenSim.Addons.OfflineIM.dll:OfflineIMService"
|
||||||
|
|
||||||
|
|
||||||
|
[GridInfoService]
|
||||||
|
; These settings are used to return information on a get_grid_info call.
|
||||||
|
; Client launcher scripts and third-party clients make use of this to
|
||||||
|
; autoconfigure the client and to provide a nice user experience. If you
|
||||||
|
; want to facilitate that, you should configure the settings here according
|
||||||
|
; to your grid or standalone setup.
|
||||||
|
;
|
||||||
|
; See http://opensimulator.org/wiki/GridInfo
|
||||||
|
|
||||||
|
; login uri: for grid this is the login server URI
|
||||||
|
login = ${Const|BaseURL}:${Const|PublicPort}/
|
||||||
|
|
||||||
|
; long grid name: the long name of your grid
|
||||||
|
gridname = "the lost continent of hippo"
|
||||||
|
|
||||||
|
; short grid name: the short name of your grid
|
||||||
|
gridnick = "hippogrid"
|
||||||
|
|
||||||
|
; login page: optional: if it exists it will be used to tell the client to use
|
||||||
|
; this as splash page
|
||||||
|
;welcome = ${Const|BaseURL}/welcome
|
||||||
|
|
||||||
|
; helper uri: optional: if it exists if will be used to tell the client to use
|
||||||
|
; this for all economy related things
|
||||||
|
;economy = ${Const|BaseURL}:${Const|PublicPort}/
|
||||||
|
|
||||||
|
; web page of grid: optional: page providing further information about your grid
|
||||||
|
;about = ${Const|BaseURL}/about/
|
||||||
|
|
||||||
|
; account creation: optional: page providing further information about obtaining
|
||||||
|
; a user account on your grid
|
||||||
|
;register = ${Const|BaseURL}/register
|
||||||
|
|
||||||
|
; help: optional: page providing further assistance for users of your grid
|
||||||
|
;help = ${Const|BaseURL}/help
|
||||||
|
|
||||||
|
; password help: optional: page providing password assistance for users of your grid
|
||||||
|
;password = ${Const|BaseURL}/password
|
||||||
|
|
||||||
|
|
||||||
|
[UserProfilesService]
|
||||||
|
LocalServiceModule = "OpenSim.Services.UserProfilesService.dll:UserProfilesService"
|
||||||
|
Enabled = false
|
||||||
|
;; Configure this for separate profiles database
|
||||||
|
;; ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=*****;Old Guids=true;"
|
||||||
|
;; Realm = UserProfiles
|
||||||
|
UserAccountService = OpenSim.Services.UserAccountService.dll:UserAccountService
|
||||||
|
AuthenticationServiceModule = "OpenSim.Services.AuthenticationService.dll:PasswordAuthenticationService"
|
||||||
|
|
||||||
|
|
||||||
|
[BakedTextureService]
|
||||||
|
LocalServiceModule = "OpenSim.Server.Handlers.dll:XBakes"
|
||||||
|
;; This directory must be writable by the user ROBUST runs as. It will be created automatically.
|
||||||
|
BaseDirectory = "./bakes"
|
35
prebuild.xml
35
prebuild.xml
|
@ -2661,6 +2661,41 @@
|
||||||
</Project>
|
</Project>
|
||||||
|
|
||||||
<!-- Test Clients -->
|
<!-- Test Clients -->
|
||||||
|
<Project frameworkVersion="v4_0" name="Robust.Tests" path="OpenSim/Tests/Robust" type="Library">
|
||||||
|
<Configuration name="Debug">
|
||||||
|
<Options>
|
||||||
|
<OutputPath>../../../bin/</OutputPath>
|
||||||
|
</Options>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration name="Release">
|
||||||
|
<Options>
|
||||||
|
<OutputPath>../../../bin/</OutputPath>
|
||||||
|
</Options>
|
||||||
|
</Configuration>
|
||||||
|
|
||||||
|
<ReferencePath>../../../bin/</ReferencePath>
|
||||||
|
<Reference name="System"/>
|
||||||
|
<Reference name="OpenMetaverseTypes" path="../../../bin/"/>
|
||||||
|
<Reference name="OpenMetaverse" path="../../../bin/"/>
|
||||||
|
<Reference name="OpenSim.Framework"/>
|
||||||
|
<Reference name="OpenSim.Framework.Servers"/>
|
||||||
|
<Reference name="OpenSim.Framework.Servers.HttpServer"/>
|
||||||
|
<Reference name="OpenSim.Framework"/>
|
||||||
|
<Reference name="OpenSim.Server.Base"/>
|
||||||
|
<Reference name="OpenSim.Server.Handlers"/>
|
||||||
|
<Reference name="OpenSim.Services.Interfaces"/>
|
||||||
|
<Reference name="OpenSim.Services.Connectors"/>
|
||||||
|
<Reference name="Robust"/>
|
||||||
|
<Reference name="Nini" path="../../../bin/"/>
|
||||||
|
<Reference name="log4net" path="../../../bin/"/>
|
||||||
|
<Reference name="nunit.framework" path="../../../bin/"/>
|
||||||
|
|
||||||
|
<Files>
|
||||||
|
<Match pattern="*.cs" recurse="true"/>
|
||||||
|
</Files>
|
||||||
|
</Project>
|
||||||
|
|
||||||
|
|
||||||
<Project frameworkVersion="v4_0" name="OpenSim.Tests.Clients.AssetClient" path="OpenSim/Tests/Clients/Assets" type="Exe">
|
<Project frameworkVersion="v4_0" name="OpenSim.Tests.Clients.AssetClient" path="OpenSim/Tests/Clients/Assets" type="Exe">
|
||||||
<Configuration name="Debug">
|
<Configuration name="Debug">
|
||||||
<Options>
|
<Options>
|
||||||
|
|
Loading…
Reference in New Issue