Some very Preliminary work on .net remoting for interregion comms.
a few more classes for CAPS LLSD types.Sugilite
parent
1eec177d4b
commit
223550b7e4
|
@ -7,10 +7,11 @@ namespace OpenGrid.Framework.Communications.OGS1
|
|||
{
|
||||
public class GridCommsManager : CommunicationsManager
|
||||
{
|
||||
private OGS1GridServices gridInterComms = new OGS1GridServices();
|
||||
public GridCommsManager(NetworkServersInfo serversInfo) :base(serversInfo)
|
||||
{
|
||||
GridServer = new OGS1GridServices();
|
||||
InterRegion = new OGSInterSimComms();
|
||||
GridServer = gridInterComms;
|
||||
InterRegion = gridInterComms;
|
||||
UserServer = new OGSUserServices();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,11 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Collections;
|
||||
using System.Text;
|
||||
using System.Runtime.Remoting;
|
||||
using System.Runtime.Remoting.Channels;
|
||||
using System.Runtime.Remoting.Channels.Tcp;
|
||||
|
||||
using OpenSim.Servers;
|
||||
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Types;
|
||||
using OpenGrid.Framework.Communications;
|
||||
|
@ -14,7 +16,7 @@ using libsecondlife;
|
|||
|
||||
namespace OpenGrid.Framework.Communications.OGS1
|
||||
{
|
||||
public class OGS1GridServices : IGridServices
|
||||
public class OGS1GridServices : IGridServices, IInterRegionCommunications
|
||||
{
|
||||
public Dictionary<ulong, RegionCommsListener> listeners = new Dictionary<ulong, RegionCommsListener>();
|
||||
public GridInfo grid;
|
||||
|
@ -49,19 +51,19 @@ namespace OpenGrid.Framework.Communications.OGS1
|
|||
string errorstring = (string)GridRespData["error"];
|
||||
OpenSim.Framework.Console.MainLog.Instance.Error("Unable to connect to grid: " + errorstring);
|
||||
return null;
|
||||
}
|
||||
|
||||
// Initialise the background listeners
|
||||
listeners[regionInfo.RegionHandle] = new RegionCommsListener();
|
||||
}
|
||||
|
||||
if (!initialised)
|
||||
if (!this.listeners.ContainsKey(regionInfo.RegionHandle))
|
||||
{
|
||||
initialised = true;
|
||||
// initialised = true;
|
||||
httpListener = new BaseHttpServer(regionInfo.CommsIPListenPort);
|
||||
httpListener.AddXmlRPCHandler("expect_user", this.ExpectUser);
|
||||
httpListener.Start();
|
||||
}
|
||||
|
||||
// Initialise the background listeners
|
||||
listeners[regionInfo.RegionHandle] = new RegionCommsListener();
|
||||
|
||||
return listeners[regionInfo.RegionHandle];
|
||||
}
|
||||
|
||||
|
@ -182,6 +184,65 @@ namespace OpenGrid.Framework.Communications.OGS1
|
|||
return new XmlRpcResponse();
|
||||
}
|
||||
|
||||
#region InterRegion Comms
|
||||
private void StartRemoting()
|
||||
{
|
||||
TcpChannel ch = new TcpChannel(8895);
|
||||
ChannelServices.RegisterChannel(ch);
|
||||
|
||||
WellKnownServiceTypeEntry wellType = new WellKnownServiceTypeEntry( Type.GetType("OGS1InterRegionRemoting"), "InterRegions", WellKnownObjectMode.Singleton);
|
||||
RemotingConfiguration.RegisterWellKnownServiceType(wellType);
|
||||
InterRegionSingleton.Instance.OnArrival += this.IncomingArrival;
|
||||
InterRegionSingleton.Instance.OnChildAgent += this.IncomingChildAgent;
|
||||
}
|
||||
|
||||
#region Methods called by regions in this instance
|
||||
public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData)
|
||||
{
|
||||
if (this.listeners.ContainsKey(regionHandle))
|
||||
{
|
||||
this.listeners[regionHandle].TriggerExpectUser(regionHandle, agentData);
|
||||
return true;
|
||||
}
|
||||
//TODO need to see if we know about where this region is and use .net remoting
|
||||
// to inform it.
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool ExpectAvatarCrossing(ulong regionHandle, libsecondlife.LLUUID agentID, libsecondlife.LLVector3 position)
|
||||
{
|
||||
if (this.listeners.ContainsKey(regionHandle))
|
||||
{
|
||||
this.listeners[regionHandle].TriggerExpectAvatarCrossing(regionHandle, agentID, position);
|
||||
return true;
|
||||
}
|
||||
//TODO need to see if we know about where this region is and use .net remoting
|
||||
// to inform it.
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Methods triggered by calls from external instances
|
||||
public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData)
|
||||
{
|
||||
if (this.listeners.ContainsKey(regionHandle))
|
||||
{
|
||||
this.listeners[regionHandle].TriggerExpectUser(regionHandle, agentData);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool IncomingArrival(ulong regionHandle, libsecondlife.LLUUID agentID, libsecondlife.LLVector3 position)
|
||||
{
|
||||
if (this.listeners.ContainsKey(regionHandle))
|
||||
{
|
||||
this.listeners[regionHandle].TriggerExpectAvatarCrossing(regionHandle, agentID, position);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,15 +5,66 @@ using OpenSim.Framework.Types;
|
|||
using OpenGrid.Framework.Communications;
|
||||
namespace OpenGrid.Framework.Communications.OGS1
|
||||
{
|
||||
public class OGSInterSimComms : IInterRegionCommunications
|
||||
public delegate bool InformRegionChild(ulong regionHandle, AgentCircuitData agentData);
|
||||
public delegate bool ExpectArrival(ulong regionHandle, libsecondlife.LLUUID agentID, libsecondlife.LLVector3 position);
|
||||
|
||||
public sealed class InterRegionSingleton
|
||||
{
|
||||
static readonly InterRegionSingleton instance = new InterRegionSingleton();
|
||||
|
||||
public event InformRegionChild OnChildAgent;
|
||||
public event ExpectArrival OnArrival;
|
||||
|
||||
static InterRegionSingleton()
|
||||
{
|
||||
}
|
||||
|
||||
InterRegionSingleton()
|
||||
{
|
||||
}
|
||||
|
||||
public static InterRegionSingleton Instance
|
||||
{
|
||||
get
|
||||
{
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData)
|
||||
{
|
||||
if (OnChildAgent != null)
|
||||
{
|
||||
return OnChildAgent(regionHandle, agentData);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool ExpectAvatarCrossing(ulong regionHandle, libsecondlife.LLUUID agentID, libsecondlife.LLVector3 position)
|
||||
{
|
||||
if (OnArrival != null)
|
||||
{
|
||||
return OnArrival(regionHandle, agentID, position);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public class OGS1InterRegionRemoting : MarshalByRefObject
|
||||
{
|
||||
|
||||
public OGS1InterRegionRemoting()
|
||||
{
|
||||
}
|
||||
|
||||
public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData)
|
||||
{
|
||||
return InterRegionSingleton.Instance.InformRegionOfChildAgent(regionHandle, agentData);
|
||||
}
|
||||
|
||||
public bool ExpectAvatarCrossing(ulong regionHandle, libsecondlife.LLUUID agentID, libsecondlife.LLVector3 position)
|
||||
{
|
||||
return InterRegionSingleton.Instance.ExpectAvatarCrossing(regionHandle, agentID, position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
|
@ -6,7 +6,8 @@
|
|||
<ProjectGuid>{17442AF1-0000-0000-0000-000000000000}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon></ApplicationIcon>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>OpenGrid.Framework.Communications.OGS1</AssemblyName>
|
||||
|
@ -15,9 +16,11 @@
|
|||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder></AppDesignerFolder>
|
||||
<AppDesignerFolder>
|
||||
</AppDesignerFolder>
|
||||
<RootNamespace>OpenGrid.Framework.Communications.OGS1</RootNamespace>
|
||||
<StartupObject></StartupObject>
|
||||
<StartupObject>
|
||||
</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
</PropertyGroup>
|
||||
|
@ -28,7 +31,8 @@
|
|||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>False</Optimize>
|
||||
|
@ -37,7 +41,8 @@
|
|||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
|
@ -46,7 +51,8 @@
|
|||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>True</Optimize>
|
||||
|
@ -55,22 +61,24 @@
|
|||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="libsecondlife.dll" >
|
||||
<Reference Include="libsecondlife.dll">
|
||||
<HintPath>..\..\bin\libsecondlife.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" >
|
||||
<Reference Include="System">
|
||||
<HintPath>System.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Data" >
|
||||
<Reference Include="System.Data">
|
||||
<HintPath>System.Data.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" >
|
||||
<Reference Include="System.Runtime.Remoting" />
|
||||
<Reference Include="System.Xml">
|
||||
<HintPath>System.Xml.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
|
@ -80,37 +88,37 @@
|
|||
<Name>OpenGrid.Framework.Communications</Name>
|
||||
<Project>{683344D5-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenGrid.Framework.Data\OpenGrid.Framework.Data.csproj">
|
||||
<Name>OpenGrid.Framework.Data</Name>
|
||||
<Project>{62CDF671-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenSim.Framework\OpenSim.Framework.csproj">
|
||||
<Name>OpenSim.Framework</Name>
|
||||
<Project>{8ACA2445-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj">
|
||||
<Name>OpenSim.Framework.Console</Name>
|
||||
<Project>{A7CD0630-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenSim.Servers\OpenSim.Servers.csproj">
|
||||
<Name>OpenSim.Servers</Name>
|
||||
<Project>{8BB20F0A-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\XmlRpcCS\XMLRPC.csproj">
|
||||
<Name>XMLRPC</Name>
|
||||
<Project>{8E81D43C-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -137,4 +145,4 @@
|
|||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
</Project>
|
|
@ -89,7 +89,23 @@ namespace OpenSim.Framework
|
|||
System.Reflection.FieldInfo field = myType.GetField((string)enumerator.Key);
|
||||
if (field != null)
|
||||
{
|
||||
field.SetValue(obj, enumerator.Value);
|
||||
if (enumerator.Value is Hashtable)
|
||||
{
|
||||
object fieldValue = field.GetValue(obj);
|
||||
DeserialiseLLSDMap((Hashtable) enumerator.Value, fieldValue);
|
||||
}
|
||||
else if (enumerator.Value is ArrayList)
|
||||
{
|
||||
object fieldValue = field.GetValue(obj);
|
||||
fieldValue.GetType().GetField("Array").SetValue(fieldValue, enumerator.Value);
|
||||
//TODO
|
||||
// the LLSD map/array types in the array need to be deserialised
|
||||
// but first we need to know the right class to deserialise them into.
|
||||
}
|
||||
else
|
||||
{
|
||||
field.SetValue(obj, enumerator.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -161,6 +177,39 @@ namespace OpenSim.Framework
|
|||
}
|
||||
}
|
||||
|
||||
[LLSDType("MAP")]
|
||||
public class LLSDUploadReply
|
||||
{
|
||||
public string new_asset = "";
|
||||
public LLUUID new_inventory_item = LLUUID.Zero;
|
||||
public string state = "";
|
||||
|
||||
public LLSDUploadReply()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[LLSDType("MAP")]
|
||||
public class LLSDCapEvent
|
||||
{
|
||||
public int id = 0;
|
||||
public LLSDArray events = new LLSDArray();
|
||||
|
||||
public LLSDCapEvent()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[LLSDType("MAP")]
|
||||
public class LLSDEmpty
|
||||
{
|
||||
public LLSDEmpty()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
[LLSDType("MAP")]
|
||||
public class LLSDTest
|
||||
|
|
|
@ -126,15 +126,7 @@
|
|||
<Compile Include="SimProfile.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserProfile.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserProfileManager.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserProfileManagerBase.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserProfile.cs" />
|
||||
<Compile Include="Util.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
|
|
|
@ -49,6 +49,7 @@ namespace OpenSim.Framework.Types
|
|||
public uint DefaultHomeLocY = 0;
|
||||
|
||||
public int HttpListenerPort = 9000;
|
||||
public int RemotingListenerPort = 8895;
|
||||
|
||||
public void InitConfig(bool sandboxMode, IGenericConfig configData)
|
||||
{
|
||||
|
@ -71,6 +72,19 @@ namespace OpenSim.Framework.Types
|
|||
this.HttpListenerPort = Convert.ToInt32(attri);
|
||||
}
|
||||
|
||||
attri = "";
|
||||
attri = configData.GetAttribute("RemotingListenerPort");
|
||||
if (attri == "")
|
||||
{
|
||||
string location = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Remoting Listener Port", "8895");
|
||||
configData.SetAttribute("RemotingListenerPort", location);
|
||||
this.RemotingListenerPort = Convert.ToInt32(location);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.RemotingListenerPort = Convert.ToInt32(attri);
|
||||
}
|
||||
|
||||
if (sandboxMode)
|
||||
{
|
||||
// default home location X
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectType>Local</ProjectType>
|
||||
<ProductVersion>8.0.50727</ProductVersion>
|
||||
|
@ -6,7 +6,8 @@
|
|||
<ProjectGuid>{8BB20F0A-0000-0000-0000-000000000000}</ProjectGuid>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ApplicationIcon></ApplicationIcon>
|
||||
<ApplicationIcon>
|
||||
</ApplicationIcon>
|
||||
<AssemblyKeyContainerName>
|
||||
</AssemblyKeyContainerName>
|
||||
<AssemblyName>OpenSim.Servers</AssemblyName>
|
||||
|
@ -15,9 +16,11 @@
|
|||
<DefaultTargetSchema>IE50</DefaultTargetSchema>
|
||||
<DelaySign>false</DelaySign>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder></AppDesignerFolder>
|
||||
<AppDesignerFolder>
|
||||
</AppDesignerFolder>
|
||||
<RootNamespace>OpenSim.Servers</RootNamespace>
|
||||
<StartupObject></StartupObject>
|
||||
<StartupObject>
|
||||
</StartupObject>
|
||||
<FileUpgradeFlags>
|
||||
</FileUpgradeFlags>
|
||||
</PropertyGroup>
|
||||
|
@ -28,7 +31,8 @@
|
|||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>False</Optimize>
|
||||
|
@ -37,7 +41,8 @@
|
|||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
|
||||
|
@ -46,7 +51,8 @@
|
|||
<ConfigurationOverrideFile>
|
||||
</ConfigurationOverrideFile>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DocumentationFile></DocumentationFile>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<DebugSymbols>False</DebugSymbols>
|
||||
<FileAlignment>4096</FileAlignment>
|
||||
<Optimize>True</Optimize>
|
||||
|
@ -55,18 +61,19 @@
|
|||
<RemoveIntegerChecks>False</RemoveIntegerChecks>
|
||||
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<NoWarn></NoWarn>
|
||||
<NoWarn>
|
||||
</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="libsecondlife.dll" >
|
||||
<Reference Include="libsecondlife.dll">
|
||||
<HintPath>..\..\bin\libsecondlife.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" >
|
||||
<Reference Include="System">
|
||||
<HintPath>System.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Xml" >
|
||||
<Reference Include="System.Xml">
|
||||
<HintPath>System.Xml.dll</HintPath>
|
||||
<Private>False</Private>
|
||||
</Reference>
|
||||
|
@ -76,19 +83,19 @@
|
|||
<Name>OpenSim.Framework</Name>
|
||||
<Project>{8ACA2445-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj">
|
||||
<Name>OpenSim.Framework.Console</Name>
|
||||
<Project>{A7CD0630-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\XmlRpcCS\XMLRPC.csproj">
|
||||
<Name>XMLRPC</Name>
|
||||
<Project>{8E81D43C-0000-0000-0000-000000000000}</Project>
|
||||
<Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
|
||||
<Private>False</Private>
|
||||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -101,15 +108,6 @@
|
|||
<Compile Include="IRestHandler.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LocalUserProfileManager.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LoginResponse.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="LoginServer.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UDPServerBase.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
|
@ -124,4 +122,4 @@
|
|||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
</Project>
|
|
@ -24,71 +24,71 @@
|
|||
* (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;
|
||||
using System.Collections.Generic;
|
||||
using Nwc.XmlRpc;
|
||||
using System.Threading;
|
||||
using libsecondlife;
|
||||
|
||||
namespace OpenGrid.Framework.Manager {
|
||||
|
||||
*/
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Nwc.XmlRpc;
|
||||
using System.Threading;
|
||||
using libsecondlife;
|
||||
|
||||
namespace OpenGrid.Framework.Manager {
|
||||
|
||||
/// <summary>
|
||||
/// A remote management system for the grid server
|
||||
/// </summary>
|
||||
public class GridServerManager
|
||||
{
|
||||
/// </summary>
|
||||
public class GridServerManager
|
||||
{
|
||||
/// <summary>
|
||||
/// Triggers events from the grid manager
|
||||
/// </summary>
|
||||
public static GridManagerCallback thecallback;
|
||||
|
||||
/// </summary>
|
||||
public static GridManagerCallback thecallback;
|
||||
|
||||
/// <summary>
|
||||
/// Security keys
|
||||
/// </summary>
|
||||
public static string sendkey;
|
||||
public static string recvkey;
|
||||
|
||||
/// </summary>
|
||||
public static string sendkey;
|
||||
public static string recvkey;
|
||||
|
||||
/// <summary>
|
||||
/// Disconnects the grid server and shuts it down
|
||||
/// </summary>
|
||||
/// <param name="request">XmlRpc Request</param>
|
||||
/// <returns>An XmlRpc response containing either a "msg" or an "error"</returns>
|
||||
public static XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
|
||||
{
|
||||
XmlRpcResponse response = new XmlRpcResponse();
|
||||
Hashtable requestData = (Hashtable)request.Params[0];
|
||||
Hashtable responseData = new Hashtable();
|
||||
|
||||
if(requestData.ContainsKey("session_id")) {
|
||||
if(GridManagementAgent.SessionExists(new LLUUID((string)requestData["session_id"]))) {
|
||||
responseData["msg"]="Shutdown command accepted";
|
||||
(new Thread(new ThreadStart(ShutdownServer))).Start();
|
||||
} else {
|
||||
response.IsFault=true;
|
||||
responseData["error"]="bad session ID";
|
||||
}
|
||||
} else {
|
||||
response.IsFault=true;
|
||||
responseData["error"]="no session ID";
|
||||
}
|
||||
|
||||
response.Value = responseData;
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <returns>An XmlRpc response containing either a "msg" or an "error"</returns>
|
||||
public static XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
|
||||
{
|
||||
XmlRpcResponse response = new XmlRpcResponse();
|
||||
Hashtable requestData = (Hashtable)request.Params[0];
|
||||
Hashtable responseData = new Hashtable();
|
||||
|
||||
if(requestData.ContainsKey("session_id")) {
|
||||
if(GridManagementAgent.SessionExists(new LLUUID((string)requestData["session_id"]))) {
|
||||
responseData["msg"]="Shutdown command accepted";
|
||||
(new Thread(new ThreadStart(ShutdownServer))).Start();
|
||||
} else {
|
||||
response.IsFault=true;
|
||||
responseData["error"]="bad session ID";
|
||||
}
|
||||
} else {
|
||||
response.IsFault=true;
|
||||
responseData["error"]="no session ID";
|
||||
}
|
||||
|
||||
response.Value = responseData;
|
||||
return response;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Shuts down the grid server
|
||||
/// </summary>
|
||||
public static void ShutdownServer()
|
||||
{
|
||||
/// </summary>
|
||||
public static void ShutdownServer()
|
||||
{
|
||||
Console.WriteLine("Shutting down the grid server - recieved a grid manager request");
|
||||
Console.WriteLine("Terminating in three seconds...");
|
||||
Thread.Sleep(3000);
|
||||
thecallback("shutdown");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Console.WriteLine("Terminating in three seconds...");
|
||||
Thread.Sleep(3000);
|
||||
thecallback("shutdown");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ using OpenSim.Framework.Types;
|
|||
using OpenSim.Framework.Console;
|
||||
using OpenSim.Assets;
|
||||
using libsecondlife;
|
||||
using OpenSim.UserServer;
|
||||
using OpenSim.Servers;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Caches;
|
||||
|
@ -32,10 +31,10 @@ namespace SimpleApp
|
|||
|
||||
string simAddr = "127.0.0.1";
|
||||
int simPort = 9000;
|
||||
|
||||
/*
|
||||
LoginServer loginServer = new LoginServer( simAddr, simPort, 0, 0, false );
|
||||
loginServer.Startup();
|
||||
loginServer.SetSessionHandler( AddNewSessionHandler );
|
||||
loginServer.SetSessionHandler( AddNewSessionHandler );*/
|
||||
|
||||
m_circuitManager = new AuthenticateSessionsBase();
|
||||
|
||||
|
@ -64,7 +63,7 @@ namespace SimpleApp
|
|||
// world.PhysicsScene = physicsScene;
|
||||
// udpServer.LocalWorld = world;
|
||||
|
||||
httpServer.AddXmlRPCHandler( "login_to_simulator", loginServer.XmlRpcLoginMethod );
|
||||
// httpServer.AddXmlRPCHandler( "login_to_simulator", loginServer.XmlRpcLoginMethod );
|
||||
httpServer.Start();
|
||||
|
||||
m_log.WriteLine( LogPriority.NORMAL, "Press enter to quit.");
|
||||
|
|
|
@ -17,7 +17,6 @@ namespace OpenSim.Region
|
|||
|
||||
public class Caps
|
||||
{
|
||||
|
||||
private string httpListenerAddress;
|
||||
private uint httpListenPort;
|
||||
private string capsObjectPath = "00001-";
|
||||
|
|
|
@ -99,7 +99,7 @@ namespace OpenSim.Region.Scenes
|
|||
|
||||
m_regionInfo = reginfo;
|
||||
m_regionHandle = reginfo.RegionHandle;
|
||||
OpenSim.Framework.Console.MainLog.Instance.Verbose( "Avatar.cs - Loading details from grid (DUMMY)");
|
||||
OpenSim.Framework.Console.MainLog.Instance.Verbose("Avatar.cs ");
|
||||
ControllingClient = theClient;
|
||||
this.firstname = ControllingClient.FirstName;
|
||||
this.lastname = ControllingClient.LastName;
|
||||
|
@ -216,8 +216,7 @@ namespace OpenSim.Region.Scenes
|
|||
/// </summary>
|
||||
/// <param name="pack"></param>
|
||||
public void HandleAgentUpdate(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation)
|
||||
{
|
||||
|
||||
{
|
||||
if ((flags & (uint)MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS) != 0)
|
||||
{
|
||||
Axiom.MathLib.Quaternion q = new Axiom.MathLib.Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z);
|
||||
|
|
|
@ -41,7 +41,6 @@ using OpenSim.Terrain;
|
|||
using OpenSim.Framework.Interfaces;
|
||||
using OpenSim.Framework.Types;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.UserServer;
|
||||
using OpenSim.Assets;
|
||||
using OpenSim.Caches;
|
||||
using OpenSim.Framework.Console;
|
||||
|
|
|
@ -40,7 +40,6 @@ using libsecondlife.Packets;
|
|||
using OpenSim.Terrain;
|
||||
using OpenSim.Framework.Interfaces;
|
||||
using OpenSim.Framework.Types;
|
||||
using OpenSim.UserServer;
|
||||
using OpenSim.Assets;
|
||||
using OpenSim.Caches;
|
||||
using OpenSim.Framework.Console;
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using OpenSim.UserServer;
|
||||
using OpenSim.Framework.Console;
|
||||
|
||||
namespace OpenSim
|
||||
|
|
|
@ -44,7 +44,6 @@ using OpenSim.Terrain;
|
|||
using OpenSim.Framework.Interfaces;
|
||||
using OpenSim.Framework.Types;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.UserServer;
|
||||
using OpenSim.Assets;
|
||||
using OpenSim.Caches;
|
||||
using OpenSim.Framework.Console;
|
||||
|
@ -129,21 +128,11 @@ namespace OpenSim
|
|||
|
||||
m_log.Verbose( "Main.cs:Startup() - Initialising HTTP server");
|
||||
|
||||
//Login server setup
|
||||
LoginServer loginServer = null;
|
||||
LoginServer adminLoginServer = null;
|
||||
|
||||
|
||||
if (m_sandbox)
|
||||
{
|
||||
httpServer.AddXmlRPCHandler("login_to_simulator", sandboxCommunications.UserServices.XmlRpcLoginMethod);
|
||||
|
||||
/*
|
||||
loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, false);
|
||||
loginServer.Startup();
|
||||
loginServer.SetSessionHandler(sandboxCommunications.SandBoxServices.AddNewSession);
|
||||
//sandbox mode with loginserver not using accounts
|
||||
httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod);
|
||||
*/
|
||||
}
|
||||
|
||||
//Start http server
|
||||
|
|
|
@ -530,6 +530,7 @@
|
|||
<Reference name="System"/>
|
||||
<Reference name="System.Xml"/>
|
||||
<Reference name="System.Data"/>
|
||||
<Reference name="System.Runtime.Remoting"/>
|
||||
<Reference name="OpenSim.Framework"/>
|
||||
<Reference name="OpenSim.Framework.Console"/>
|
||||
<Reference name="OpenSim.Servers"/>
|
||||
|
|
Loading…
Reference in New Issue