aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs31
1 files changed, 21 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
index 82ae640..8c3c5be 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
@@ -570,18 +570,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
570 // UseCircuitCode handling 570 // UseCircuitCode handling
571 if (packet.Type == PacketType.UseCircuitCode) 571 if (packet.Type == PacketType.UseCircuitCode)
572 { 572 {
573 Util.FireAndForget( 573 m_log.Debug("[LLUDPSERVER]: Handling UseCircuitCode packet from " + buffer.RemoteEndPoint);
574 delegate(object o) 574 object[] array = new object[] { buffer, packet };
575 {
576 IPEndPoint remoteEndPoint = (IPEndPoint)buffer.RemoteEndPoint;
577 575
578 // Begin the process of adding the client to the simulator 576 if (m_asyncPacketHandling)
579 AddNewClient((UseCircuitCodePacket)packet, remoteEndPoint); 577 Util.FireAndForget(HandleUseCircuitCode, array);
578 else
579 HandleUseCircuitCode(array);
580 580
581 // Acknowledge the UseCircuitCode packet
582 SendAckImmediate(remoteEndPoint, packet.Header.Sequence);
583 }
584 );
585 return; 581 return;
586 } 582 }
587 583
@@ -692,6 +688,21 @@ namespace OpenSim.Region.ClientStack.LindenUDP
692 packetInbox.Enqueue(new IncomingPacket(udpClient, packet)); 688 packetInbox.Enqueue(new IncomingPacket(udpClient, packet));
693 } 689 }
694 690
691 private void HandleUseCircuitCode(object o)
692 {
693 object[] array = (object[])o;
694 UDPPacketBuffer buffer = (UDPPacketBuffer)array[0];
695 UseCircuitCodePacket packet = (UseCircuitCodePacket)array[1];
696
697 IPEndPoint remoteEndPoint = (IPEndPoint)buffer.RemoteEndPoint;
698
699 // Begin the process of adding the client to the simulator
700 AddNewClient((UseCircuitCodePacket)packet, remoteEndPoint);
701
702 // Acknowledge the UseCircuitCode packet
703 SendAckImmediate(remoteEndPoint, packet.Header.Sequence);
704 }
705
695 private void SendAckImmediate(IPEndPoint remoteEndpoint, uint sequenceNumber) 706 private void SendAckImmediate(IPEndPoint remoteEndpoint, uint sequenceNumber)
696 { 707 {
697 PacketAckPacket ack = new PacketAckPacket(); 708 PacketAckPacket ack = new PacketAckPacket();