* More clientstack abstractions - We now only have a single constructor call to UDPServer. Going to reduce this with an abstracted constructor in a bit.

0.6.0-stable
Adam Frisby 2008-05-02 18:18:43 +00:00
parent cfc62d6252
commit 4dc75e4b76
4 changed files with 30 additions and 15 deletions

View File

@ -453,7 +453,7 @@ namespace OpenSim
/// <param name="regionInfo"></param>
/// <param name="portadd_flag"></param>
/// <returns></returns>
public LLUDPServer CreateRegion(RegionInfo regionInfo, bool portadd_flag)
public IClientNetworkServer CreateRegion(RegionInfo regionInfo, bool portadd_flag)
{
return CreateRegion(regionInfo, portadd_flag, false);
}
@ -464,7 +464,7 @@ namespace OpenSim
/// <param name="regionInfo"></param>
/// <param name="portadd_flag"></param>
/// <returns></returns>
public LLUDPServer CreateRegion(RegionInfo regionInfo)
public IClientNetworkServer CreateRegion(RegionInfo regionInfo)
{
return CreateRegion(regionInfo, false, true);
}
@ -476,7 +476,7 @@ namespace OpenSim
/// <param name="portadd_flag"></param>
/// <param name="do_post_init"></param>
/// <returns></returns>
public LLUDPServer CreateRegion(RegionInfo regionInfo, bool portadd_flag, bool do_post_init)
public IClientNetworkServer CreateRegion(RegionInfo regionInfo, bool portadd_flag, bool do_post_init)
{
int port = regionInfo.InternalEndPoint.Port;
@ -496,7 +496,7 @@ namespace OpenSim
Util.XmlRpcCommand(proxyUrl, "AddPort", port, port + proxyOffset, regionInfo.ExternalHostName);
}
LLUDPServer udpServer;
IClientNetworkServer udpServer;
Scene scene = SetupScene(regionInfo, proxyOffset, out udpServer, m_permissions);
m_log.Info("[MODULES]: Loading Region's modules");
@ -551,7 +551,7 @@ namespace OpenSim
m_clientServers.Add(udpServer);
m_regionData.Add(regionInfo);
udpServer.ServerListener();
udpServer.Start();
if (do_post_init)
{

View File

@ -1,5 +1,6 @@
using System.Net.Sockets;
using OpenSim.Framework;
using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.ClientStack
{
@ -7,5 +8,9 @@ namespace OpenSim.Region.ClientStack
{
Socket Server { get; }
bool HandlesRegion(Location x);
void AddScene(Scene x);
void Start();
void Stop();
}
}

View File

@ -35,6 +35,7 @@ using log4net;
using OpenSim.Framework;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.ClientStack.LindenUDP;
using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.ClientStack.LindenUDP
{
@ -95,6 +96,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return x == m_location;
}
public void AddScene(Scene x)
{
LocalScene = x;
}
public void Start()
{
ServerListener();
}
public void Stop()
{
m_socket.Close();
}
public LLUDPServer()
{
}
@ -318,12 +334,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ack_it.Header.Reliable = false;
SendPacketTo(ack_it.ToBytes(),ack_it.ToBytes().Length,SocketFlags.None,p.CircuitCode.Code);
}
else
{
// invalid client
//CFK: This message seems to have served its usefullness as of 12-15 so I am commenting it out for now
//m_log.Warn("[UDPSERVER]: Got a packet from an invalid client - " + packet.ToString());
}
}
catch (Exception)
{

View File

@ -107,12 +107,12 @@ namespace OpenSim.Region.ClientStack
return physicsPluginManager.GetPhysicsScene(engine, meshEngine);
}
protected Scene SetupScene(RegionInfo regionInfo, out LLUDPServer udpServer, bool m_permissions)
protected Scene SetupScene(RegionInfo regionInfo, out IClientNetworkServer udpServer, bool m_permissions)
{
return SetupScene(regionInfo, 0, out udpServer, m_permissions);
}
protected Scene SetupScene(RegionInfo regionInfo, int proxyOffset, out LLUDPServer udpServer, bool m_permissions)
protected Scene SetupScene(RegionInfo regionInfo, int proxyOffset, out IClientNetworkServer udpServer, bool m_permissions)
{
AgentCircuitManager circuitManager = new AgentCircuitManager();
IPAddress listenIP = regionInfo.InternalEndPoint.Address;
@ -124,8 +124,8 @@ namespace OpenSim.Region.ClientStack
regionInfo.InternalEndPoint.Port = (int)port;
Scene scene = CreateScene(regionInfo, m_storageManager, circuitManager);
udpServer.LocalScene = scene;
udpServer.AddScene(scene);
scene.LoadWorldMap();