diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 3b0312d..bf44152 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -1207,6 +1207,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1207 | //m_log.DebugFormat("[LLUDPSERVER]: Resending packet #{0} (attempt {1}), {2}ms have passed", | 1207 | //m_log.DebugFormat("[LLUDPSERVER]: Resending packet #{0} (attempt {1}), {2}ms have passed", |
1208 | // outgoingPacket.SequenceNumber, outgoingPacket.ResendCount, Environment.TickCount - outgoingPacket.TickCount); | 1208 | // outgoingPacket.SequenceNumber, outgoingPacket.ResendCount, Environment.TickCount - outgoingPacket.TickCount); |
1209 | 1209 | ||
1210 | // Bump up the resend count on this packet | ||
1211 | Interlocked.Increment(ref outgoingPacket.ResendCount); | ||
1212 | |||
1213 | // loose packets we retried more than 6 times | ||
1214 | // sl says 3 so lets be more tolerant | ||
1215 | // we can't not keep hammering with packets a viewer may just beeing ignoring | ||
1216 | |||
1217 | if (outgoingPacket.ResendCount > 6) | ||
1218 | return; | ||
1219 | |||
1210 | // Set the resent flag | 1220 | // Set the resent flag |
1211 | outgoingPacket.Buffer.Data[0] = (byte)(outgoingPacket.Buffer.Data[0] | Helpers.MSG_RESENT); | 1221 | outgoingPacket.Buffer.Data[0] = (byte)(outgoingPacket.Buffer.Data[0] | Helpers.MSG_RESENT); |
1212 | outgoingPacket.Category = ThrottleOutPacketType.Resend; | 1222 | outgoingPacket.Category = ThrottleOutPacketType.Resend; |