aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP
diff options
context:
space:
mode:
authorUbitUmarov2014-08-13 01:42:16 +0100
committerUbitUmarov2014-08-13 01:42:16 +0100
commitcf48b814ebbc28761571c1b219376da445f844c9 (patch)
tree171d9538e0039ec773d3a3be25e3ea78cfc4856f /OpenSim/Region/ClientStack/Linden/UDP
parentprocess AgentUpdates in order with rest of packets. Only give higher priority... (diff)
downloadopensim-SC-cf48b814ebbc28761571c1b219376da445f844c9.zip
opensim-SC-cf48b814ebbc28761571c1b219376da445f844c9.tar.gz
opensim-SC-cf48b814ebbc28761571c1b219376da445f844c9.tar.bz2
opensim-SC-cf48b814ebbc28761571c1b219376da445f844c9.tar.xz
remove HandleCompleteMovementIntoRegion delay hack from llUDPserver. If we
need a delay, we need to do it at end of HandleUseCircuitCode before feeding pending packets (including that one) into processing queue.
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs6
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs22
2 files changed, 17 insertions, 11 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 9462bdc..73d7a6c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5845,7 +5845,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5845 m_thisAgentUpdateArgs.Far = x.Far; 5845 m_thisAgentUpdateArgs.Far = x.Far;
5846 m_thisAgentUpdateArgs.Flags = x.Flags; 5846 m_thisAgentUpdateArgs.Flags = x.Flags;
5847 m_thisAgentUpdateArgs.HeadRotation = x.HeadRotation; 5847 m_thisAgentUpdateArgs.HeadRotation = x.HeadRotation;
5848 m_thisAgentUpdateArgs.SessionID = x.SessionID; 5848// m_thisAgentUpdateArgs.SessionID = x.SessionID;
5849 m_thisAgentUpdateArgs.State = x.State; 5849 m_thisAgentUpdateArgs.State = x.State;
5850 5850
5851 UpdateAgent handlerAgentUpdate = OnAgentUpdate; 5851 UpdateAgent handlerAgentUpdate = OnAgentUpdate;
@@ -6762,8 +6762,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6762 return true; 6762 return true;
6763 } 6763 }
6764 6764
6765 private bool HandleCompleteAgentMovement(IClientAPI sender, Packet Pack) 6765 private bool HandleCompleteAgentMovement(IClientAPI sender, Packet Pack)
6766 { 6766 {
6767 m_log.DebugFormat("[LLClientView] HandleCompleteAgentMovement");
6768
6767 Action<IClientAPI, bool> handlerCompleteMovementToRegion = OnCompleteMovementToRegion; 6769 Action<IClientAPI, bool> handlerCompleteMovementToRegion = OnCompleteMovementToRegion;
6768 if (handlerCompleteMovementToRegion != null) 6770 if (handlerCompleteMovementToRegion != null)
6769 { 6771 {
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 2e9ac4c..fe79f87 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -1422,6 +1422,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1422 return; 1422 return;
1423 } 1423 }
1424 1424
1425/*
1425 else if (packet.Type == PacketType.CompleteAgentMovement) 1426 else if (packet.Type == PacketType.CompleteAgentMovement)
1426 { 1427 {
1427 // Send ack straight away to let the viewer know that we got it. 1428 // Send ack straight away to let the viewer know that we got it.
@@ -1435,6 +1436,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1435 1436
1436 return; 1437 return;
1437 } 1438 }
1439 */
1438 } 1440 }
1439 1441
1440 // Determine which agent this packet came from 1442 // Determine which agent this packet came from
@@ -1718,7 +1720,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1718 1720
1719 try 1721 try
1720 { 1722 {
1721 // DateTime startTime = DateTime.Now; 1723// DateTime startTime = DateTime.Now;
1722 object[] array = (object[])o; 1724 object[] array = (object[])o;
1723 endPoint = (IPEndPoint)array[0]; 1725 endPoint = (IPEndPoint)array[0];
1724 UseCircuitCodePacket uccp = (UseCircuitCodePacket)array[1]; 1726 UseCircuitCodePacket uccp = (UseCircuitCodePacket)array[1];
@@ -1738,9 +1740,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1738 uccp.CircuitCode.SessionID, 1740 uccp.CircuitCode.SessionID,
1739 endPoint, 1741 endPoint,
1740 sessionInfo); 1742 sessionInfo);
1741 1743
1742 // Now we know we can handle more data 1744 // Now we know we can handle more data
1743// Thread.Sleep(200); 1745 Thread.Sleep(200);
1744 1746
1745 // Obtain the pending queue and remove it from the cache 1747 // Obtain the pending queue and remove it from the cache
1746 Queue<UDPPacketBuffer> queue = null; 1748 Queue<UDPPacketBuffer> queue = null;
@@ -1751,6 +1753,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1751 { 1753 {
1752 m_log.DebugFormat("[LLUDPSERVER]: Client created but no pending queue present"); 1754 m_log.DebugFormat("[LLUDPSERVER]: Client created but no pending queue present");
1753 return; 1755 return;
1756
1754 } 1757 }
1755 m_pendingCache.Remove(endPoint); 1758 m_pendingCache.Remove(endPoint);
1756 } 1759 }
@@ -1758,11 +1761,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1758 m_log.DebugFormat("[LLUDPSERVER]: Client created, processing pending queue, {0} entries", queue.Count); 1761 m_log.DebugFormat("[LLUDPSERVER]: Client created, processing pending queue, {0} entries", queue.Count);
1759 1762
1760 // Reinject queued packets 1763 // Reinject queued packets
1761 while(queue.Count > 0) 1764 while (queue.Count > 0)
1762 { 1765 {
1763 UDPPacketBuffer buf = queue.Dequeue(); 1766 UDPPacketBuffer buf = queue.Dequeue();
1764 PacketReceived(buf); 1767 PacketReceived(buf);
1765 } 1768 }
1769
1766 queue = null; 1770 queue = null;
1767 1771
1768 // Send ack straight away to let the viewer know that the connection is active. 1772 // Send ack straight away to let the viewer know that the connection is active.
@@ -1788,8 +1792,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1788 uccp.CircuitCode.ID, m_scene.RegionInfo.RegionName, uccp.CircuitCode.Code, endPoint); 1792 uccp.CircuitCode.ID, m_scene.RegionInfo.RegionName, uccp.CircuitCode.Code, endPoint);
1789 lock (m_pendingCache) 1793 lock (m_pendingCache)
1790 m_pendingCache.Remove(endPoint); 1794 m_pendingCache.Remove(endPoint);
1791 } 1795 }
1792
1793 // m_log.DebugFormat( 1796 // m_log.DebugFormat(
1794 // "[LLUDPSERVER]: Handling UseCircuitCode request from {0} took {1}ms", 1797 // "[LLUDPSERVER]: Handling UseCircuitCode request from {0} took {1}ms",
1795 // buffer.RemoteEndPoint, (DateTime.Now - startTime).Milliseconds); 1798 // buffer.RemoteEndPoint, (DateTime.Now - startTime).Milliseconds);
@@ -1806,8 +1809,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1806 e.StackTrace); 1809 e.StackTrace);
1807 } 1810 }
1808 } 1811 }
1809 1812/*
1810 private void HandleCompleteMovementIntoRegion(object o) 1813 private void HandleCompleteMovementIntoRegion(object o)
1811 { 1814 {
1812 IPEndPoint endPoint = null; 1815 IPEndPoint endPoint = null;
1813 IClientAPI client = null; 1816 IClientAPI client = null;
@@ -1916,6 +1919,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1916 e.StackTrace); 1919 e.StackTrace);
1917 } 1920 }
1918 } 1921 }
1922*/
1919 1923
1920 /// <summary> 1924 /// <summary>
1921 /// Send an ack immediately to the given endpoint. 1925 /// Send an ack immediately to the given endpoint.
@@ -2053,7 +2057,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2053 m_incomingPacketPool.ReturnObject(incomingPacket); 2057 m_incomingPacketPool.ReturnObject(incomingPacket);
2054 } 2058 }
2055 } 2059 }
2056 catch (Exception ex) 2060 catch(Exception ex)
2057 { 2061 {
2058 m_log.Error("[LLUDPSERVER]: Error in the incoming packet handler loop: " + ex.Message, ex); 2062 m_log.Error("[LLUDPSERVER]: Error in the incoming packet handler loop: " + ex.Message, ex);
2059 } 2063 }