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

View File

@ -1,5 +1,6 @@
using System.Net.Sockets; using System.Net.Sockets;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.ClientStack namespace OpenSim.Region.ClientStack
{ {
@ -7,5 +8,9 @@ namespace OpenSim.Region.ClientStack
{ {
Socket Server { get; } Socket Server { get; }
bool HandlesRegion(Location x); 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;
using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.ClientStack.LindenUDP; using OpenSim.Region.ClientStack.LindenUDP;
using OpenSim.Region.Environment.Scenes;
namespace OpenSim.Region.ClientStack.LindenUDP namespace OpenSim.Region.ClientStack.LindenUDP
{ {
@ -95,6 +96,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return x == m_location; return x == m_location;
} }
public void AddScene(Scene x)
{
LocalScene = x;
}
public void Start()
{
ServerListener();
}
public void Stop()
{
m_socket.Close();
}
public LLUDPServer() public LLUDPServer()
{ {
} }
@ -318,12 +334,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
ack_it.Header.Reliable = false; ack_it.Header.Reliable = false;
SendPacketTo(ack_it.ToBytes(),ack_it.ToBytes().Length,SocketFlags.None,p.CircuitCode.Code); 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) catch (Exception)
{ {

View File

@ -107,12 +107,12 @@ namespace OpenSim.Region.ClientStack
return physicsPluginManager.GetPhysicsScene(engine, meshEngine); 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); 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(); AgentCircuitManager circuitManager = new AgentCircuitManager();
IPAddress listenIP = regionInfo.InternalEndPoint.Address; IPAddress listenIP = regionInfo.InternalEndPoint.Address;
@ -125,7 +125,7 @@ namespace OpenSim.Region.ClientStack
Scene scene = CreateScene(regionInfo, m_storageManager, circuitManager); Scene scene = CreateScene(regionInfo, m_storageManager, circuitManager);
udpServer.LocalScene = scene; udpServer.AddScene(scene);
scene.LoadWorldMap(); scene.LoadWorldMap();