diff options
author | UbitUmarov | 2019-02-27 10:07:25 +0000 |
---|---|---|
committer | UbitUmarov | 2019-02-27 10:07:25 +0000 |
commit | bcf05afd64d3b38c66d6d117a51e336a7e98dfc3 (patch) | |
tree | 86e40c3780aa30a1bb2559a30ff4f48d38d02fd3 /OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |
parent | avoid packet split on terseupdates (diff) | |
download | opensim-SC-bcf05afd64d3b38c66d6d117a51e336a7e98dfc3.zip opensim-SC-bcf05afd64d3b38c66d6d117a51e336a7e98dfc3.tar.gz opensim-SC-bcf05afd64d3b38c66d6d117a51e336a7e98dfc3.tar.bz2 opensim-SC-bcf05afd64d3b38c66d6d117a51e336a7e98dfc3.tar.xz |
direct encode terseupdates
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index d324623..f12b3b9 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -934,6 +934,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
934 | #endregion Queue or Send | 934 | #endregion Queue or Send |
935 | } | 935 | } |
936 | 936 | ||
937 | public void SendUDPPacket( | ||
938 | LLUDPClient udpClient, UDPPacketBuffer buffer, ThrottleOutPacketType category, UnackedPacketMethod method, bool forcequeue) | ||
939 | { | ||
940 | bool highPriority = false; | ||
941 | |||
942 | if (category != ThrottleOutPacketType.Unknown && (category & ThrottleOutPacketType.HighPriority) != 0) | ||
943 | { | ||
944 | category = (ThrottleOutPacketType)((int)category & 127); | ||
945 | highPriority = true; | ||
946 | } | ||
947 | |||
948 | OutgoingPacket outgoingPacket = new OutgoingPacket(udpClient, buffer, category, null); | ||
949 | |||
950 | // If we were not provided a method for handling unacked, use the UDPServer default method | ||
951 | if ((outgoingPacket.Buffer.Data[0] & Helpers.MSG_RELIABLE) != 0) | ||
952 | outgoingPacket.UnackedMethod = ((method == null) ? delegate (OutgoingPacket oPacket) { ResendUnacked(oPacket); } : method); | ||
953 | |||
954 | if (!outgoingPacket.Client.EnqueueOutgoing(outgoingPacket, forcequeue, highPriority)) | ||
955 | SendPacketFinal(outgoingPacket); | ||
956 | } | ||
957 | |||
937 | public void SendAcks(LLUDPClient udpClient) | 958 | public void SendAcks(LLUDPClient udpClient) |
938 | { | 959 | { |
939 | uint ack; | 960 | uint ack; |