From ea8c18f63d7d8079bc790524bc99e9e067f29737 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sun, 7 Sep 2008 00:47:08 +0000 Subject: * minor: just minor doc and tidy up --- .../Region/ClientStack/LindenUDP/LLUDPServer.cs | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/ClientStack') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 92321b6..ceb99ae 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs @@ -40,6 +40,9 @@ using OpenSim.Region.Environment.Scenes; namespace OpenSim.Region.ClientStack.LindenUDP { + /// + /// This class handles the initial UDP circuit setup with a client and passes on subsequent packets to the LLPacketServer + /// public class LLUDPServer : LLClientStackNetworkHandler, IClientNetworkServer { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -55,7 +58,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP protected byte[] RecvBuffer = new byte[4096]; protected byte[] ZeroBuffer = new byte[8192]; protected IPEndPoint ipeSender; + + /// + /// The endpoint of a sender of a particular packet. The port is continually changed by the various socket receive methods + /// protected EndPoint epSender; + protected EndPoint epProxy; protected int proxyPortOffset; protected AsyncCallback ReceivedData; @@ -145,6 +153,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP new LLPacketServer(this); } + /// + /// This method is called every time that we receive new UDP data. We pass this data on to the LLPacketServer + /// except in the case that the packet is UseCircuitCode. In this case we set up the circuit code instead. + /// + /// protected virtual void OnReceivedData(IAsyncResult result) { ipeSender = new IPEndPoint(listenIP, 0); @@ -226,10 +239,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP { ret = clientCircuits.TryGetValue(epSender, out circuit); } + if (ret) { //if so then send packet to the packetserver - //m_log.Warn("[UDPSERVER]: ALREADY HAVE Circuit!"); + //m_log.DebugFormat("[UDPSERVER]: For endpoint {0} got packet {1}", epSender, packet.Type); + m_packetServer.InPacket(circuit, packet); } else if (packet.Type == PacketType.UseCircuitCode) @@ -311,6 +326,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP } } + /// + /// Add a new client circuit. + /// + /// protected virtual void AddNewClient(Packet packet) { //Slave regions don't accept new clients @@ -325,7 +344,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (!clientCircuits.ContainsKey(epSender)) clientCircuits.Add(epSender, useCircuit.CircuitCode.Code); else - m_log.Error("[UDPSERVER]: clientCircuits already contans entry for user " + useCircuit.CircuitCode.Code.ToString() + ". NOT adding."); + m_log.Error("[UDPSERVER]: clientCircuits already contains entry for user " + useCircuit.CircuitCode.Code.ToString() + ". NOT adding."); } // This doesn't need locking as it's synchronized data @@ -345,13 +364,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP PacketServer.AddNewClient(epSender, useCircuit, m_assetCache, m_authenticateSessionsClass, epProxy); } + PacketPool.Instance.ReturnPacket(packet); } public void ServerListener() { uint newPort = listenPort; - m_log.Info("[SERVER]: Opening UDP socket on " + listenIP.ToString() + " " + newPort + "."); + m_log.Info("[SERVER]: Opening UDP socket on " + listenIP + " " + newPort + "."); ServerIncoming = new IPEndPoint(listenIP, (int)newPort); m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); -- cgit v1.1