Merge commit 'f9ffd2538f3bf300e8f751258a6129fb780b5b0a' into bigmerge
commit
080a41e9f9
|
@ -170,7 +170,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// <param name="circuitCode">Circuit code for this connection</param>
|
||||
/// <param name="agentID">AgentID for the connected agent</param>
|
||||
/// <param name="remoteEndPoint">Remote endpoint for this connection</param>
|
||||
public LLUDPClient(LLUDPServer server, ThrottleRates rates, TokenBucket parentThrottle, uint circuitCode, UUID agentID, IPEndPoint remoteEndPoint, int defaultRTO, int maxRTO)
|
||||
/// <param name="defaultRTO">
|
||||
/// Default retransmission timeout for unacked packets. The RTO will never drop
|
||||
/// beyond this number.
|
||||
/// </param>
|
||||
/// <param name="maxRTO">
|
||||
/// The maximum retransmission timeout for unacked packets. The RTO will never exceed this number.
|
||||
/// </param>
|
||||
public LLUDPClient(
|
||||
LLUDPServer server, ThrottleRates rates, TokenBucket parentThrottle, uint circuitCode, UUID agentID,
|
||||
IPEndPoint remoteEndPoint, int defaultRTO, int maxRTO)
|
||||
{
|
||||
AgentID = agentID;
|
||||
RemoteEndPoint = remoteEndPoint;
|
||||
|
@ -198,7 +207,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
m_throttleCategories[i] = new TokenBucket(m_throttleCategory, rates.GetRate(type));
|
||||
}
|
||||
|
||||
// Default the retransmission timeout to three seconds
|
||||
// Default the retransmission timeout to one second
|
||||
RTO = m_defaultRTO;
|
||||
|
||||
// Initialize this to a sane value to prevent early disconnects
|
||||
|
@ -263,9 +272,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// <summary>
|
||||
/// Return statistics information about client packet queues.
|
||||
/// </summary>
|
||||
///
|
||||
/// <remarks>
|
||||
/// FIXME: This should really be done in a more sensible manner rather than sending back a formatted string.
|
||||
///
|
||||
/// </remarks>
|
||||
/// <returns></returns>
|
||||
public string GetStats()
|
||||
{
|
||||
|
@ -616,8 +625,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// Does an early check to see if this queue empty callback is already
|
||||
/// running, then asynchronously firing the event
|
||||
/// </summary>
|
||||
/// <param name="throttleIndex">Throttle category to fire the callback
|
||||
/// for</param>
|
||||
/// <param name="categories">Throttle categories to fire the callback for</param>
|
||||
private void BeginFireQueueEmpty(ThrottleOutPacketTypeFlags categories)
|
||||
{
|
||||
if (m_nextOnQueueEmpty != 0 && (Environment.TickCount & Int32.MaxValue) >= m_nextOnQueueEmpty)
|
||||
|
|
|
@ -324,7 +324,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// <param name="packet"></param>
|
||||
/// <param name="category"></param>
|
||||
/// <param name="allowSplitting"></param>
|
||||
public void SendPacket(LLUDPClient udpClient, Packet packet, ThrottleOutPacketType category, bool allowSplitting, UnackedPacketMethod method)
|
||||
/// <param name="method">
|
||||
/// The method to call if the packet is not acked by the client. If null, then a standard
|
||||
/// resend of the packet is done.
|
||||
/// </param>
|
||||
public void SendPacket(
|
||||
LLUDPClient udpClient, Packet packet, ThrottleOutPacketType category, bool allowSplitting, UnackedPacketMethod method)
|
||||
{
|
||||
// CoarseLocationUpdate packets cannot be split in an automated way
|
||||
if (packet.Type == PacketType.CoarseLocationUpdate && allowSplitting)
|
||||
|
@ -358,7 +363,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// <param name="data"></param>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="category"></param>
|
||||
public void SendPacketData(LLUDPClient udpClient, byte[] data, PacketType type, ThrottleOutPacketType category, UnackedPacketMethod method)
|
||||
/// <param name="method">
|
||||
/// The method to call if the packet is not acked by the client. If null, then a standard
|
||||
/// resend of the packet is done.
|
||||
/// </param>
|
||||
public void SendPacketData(
|
||||
LLUDPClient udpClient, byte[] data, PacketType type, ThrottleOutPacketType category, UnackedPacketMethod method)
|
||||
{
|
||||
int dataLength = data.Length;
|
||||
bool doZerocode = (data[0] & Helpers.MSG_ZEROCODED) != 0;
|
||||
|
@ -1102,7 +1112,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
{
|
||||
m_log.Error("[LLUDPSERVER]: OutgoingPacketHandler loop threw an exception: " + ex.Message, ex);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Watchdog.RemoveThread();
|
||||
|
|
|
@ -118,12 +118,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
|||
/// Returns a list of all of the packets with a TickCount older than
|
||||
/// the specified timeout
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This function is not thread safe, and cannot be called
|
||||
/// multiple times concurrently
|
||||
/// </remarks>
|
||||
/// <param name="timeoutMS">Number of ticks (milliseconds) before a
|
||||
/// packet is considered expired</param>
|
||||
/// <returns>A list of all expired packets according to the given
|
||||
/// expiration timeout</returns>
|
||||
/// <remarks>This function is not thread safe, and cannot be called
|
||||
/// multiple times concurrently</remarks>
|
||||
/// packet is considered expired
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// A list of all expired packets according to the given
|
||||
/// expiration timeout
|
||||
/// </returns>
|
||||
public List<OutgoingPacket> GetExpiredPackets(int timeoutMS)
|
||||
{
|
||||
ProcessQueues();
|
||||
|
|
Loading…
Reference in New Issue