diff options
author | Melanie Thielker | 2014-08-27 11:25:17 +0200 |
---|---|---|
committer | Melanie Thielker | 2014-08-27 11:25:17 +0200 |
commit | 012d0b07bc797db3d230337745bb543c33800855 (patch) | |
tree | 08e688f166939f459ffe3aca371c09a0fa6c126b /OpenSim/Region/ClientStack/Linden | |
parent | Merge branch 'ubitworkmaster' (diff) | |
parent | enqueue also if m_nextPackets[category] is not null. This is really the (diff) | |
download | opensim-SC-012d0b07bc797db3d230337745bb543c33800855.zip opensim-SC-012d0b07bc797db3d230337745bb543c33800855.tar.gz opensim-SC-012d0b07bc797db3d230337745bb543c33800855.tar.bz2 opensim-SC-012d0b07bc797db3d230337745bb543c33800855.tar.xz |
Merge branch 'ubitworkmaster'
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 21 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 2 |
3 files changed, 30 insertions, 5 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index e19877c..7087bb7 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -5393,6 +5393,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5393 | //update.JointType = 0; | 5393 | //update.JointType = 0; |
5394 | update.Material = data.Material; | 5394 | update.Material = data.Material; |
5395 | update.MediaURL = Utils.EmptyBytes; // FIXME: Support this in OpenSim | 5395 | update.MediaURL = Utils.EmptyBytes; // FIXME: Support this in OpenSim |
5396 | /* | ||
5396 | if (data.ParentGroup.IsAttachment) | 5397 | if (data.ParentGroup.IsAttachment) |
5397 | { | 5398 | { |
5398 | update.NameValue = Util.StringToBytes256("AttachItemID STRING RW SV " + data.ParentGroup.FromItemID); | 5399 | update.NameValue = Util.StringToBytes256("AttachItemID STRING RW SV " + data.ParentGroup.FromItemID); |
@@ -5406,6 +5407,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5406 | // case for attachments may contain conflicting values that can end up crashing the viewer. | 5407 | // case for attachments may contain conflicting values that can end up crashing the viewer. |
5407 | update.State = data.ParentGroup.RootPart.Shape.State; | 5408 | update.State = data.ParentGroup.RootPart.Shape.State; |
5408 | } | 5409 | } |
5410 | */ | ||
5411 | |||
5412 | if (data.ParentGroup.IsAttachment) | ||
5413 | { | ||
5414 | if (data.IsRoot) | ||
5415 | { | ||
5416 | update.NameValue = Util.StringToBytes256("AttachItemID STRING RW SV " + data.ParentGroup.FromItemID); | ||
5417 | } | ||
5418 | else | ||
5419 | update.NameValue = Utils.EmptyBytes; | ||
5420 | |||
5421 | int st = (int)data.ParentGroup.AttachmentPoint; | ||
5422 | update.State = (byte)(((st & 0xf0) >> 4) + ((st & 0x0f) << 4)); ; | ||
5423 | } | ||
5424 | else | ||
5425 | { | ||
5426 | update.NameValue = Utils.EmptyBytes; | ||
5427 | update.State = data.Shape.State; // not sure about this | ||
5428 | } | ||
5429 | |||
5409 | 5430 | ||
5410 | // m_log.DebugFormat( | 5431 | // m_log.DebugFormat( |
5411 | // "[LLCLIENTVIEW]: Sending state {0} for {1} {2} to {3}", | 5432 | // "[LLCLIENTVIEW]: Sending state {0} for {1} {2} to {3}", |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs index fe31bd9..8852715 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPClient.cs | |||
@@ -364,6 +364,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
364 | int texture = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f); pos += 4; | 364 | int texture = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f); pos += 4; |
365 | int asset = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f); | 365 | int asset = (int)(BitConverter.ToSingle(adjData, pos) * 0.125f); |
366 | 366 | ||
367 | int total = resend + land + wind + cloud + task + texture + asset; | ||
368 | total /= 128; | ||
369 | |||
367 | // Make sure none of the throttles are set below our packet MTU, | 370 | // Make sure none of the throttles are set below our packet MTU, |
368 | // otherwise a throttle could become permanently clogged | 371 | // otherwise a throttle could become permanently clogged |
369 | resend = Math.Max(resend, LLUDPServer.MTU); | 372 | resend = Math.Max(resend, LLUDPServer.MTU); |
@@ -379,8 +382,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
379 | // the task queue (e.g. object updates) | 382 | // the task queue (e.g. object updates) |
380 | task = task + (int)(m_cannibalrate * texture); | 383 | task = task + (int)(m_cannibalrate * texture); |
381 | texture = (int)((1 - m_cannibalrate) * texture); | 384 | texture = (int)((1 - m_cannibalrate) * texture); |
382 | 385 | ||
383 | //int total = resend + land + wind + cloud + task + texture + asset; | 386 | total = resend + land + wind + cloud + task + texture + asset; |
387 | total /= 128; | ||
384 | //m_log.DebugFormat("[LLUDPCLIENT]: {0} is setting throttles. Resend={1}, Land={2}, Wind={3}, Cloud={4}, Task={5}, Texture={6}, Asset={7}, Total={8}", | 388 | //m_log.DebugFormat("[LLUDPCLIENT]: {0} is setting throttles. Resend={1}, Land={2}, Wind={3}, Cloud={4}, Task={5}, Texture={6}, Asset={7}, Total={8}", |
385 | // AgentID, resend, land, wind, cloud, task, texture, asset, total); | 389 | // AgentID, resend, land, wind, cloud, task, texture, asset, total); |
386 | 390 | ||
@@ -484,7 +488,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
484 | // Don't send this packet if there is already a packet waiting in the queue | 488 | // Don't send this packet if there is already a packet waiting in the queue |
485 | // even if we have the tokens to send it, tokens should go to the already | 489 | // even if we have the tokens to send it, tokens should go to the already |
486 | // queued packets | 490 | // queued packets |
487 | if (queue.Count > 0) | 491 | if (queue.Count > 0 || m_nextPackets[category] != null) |
488 | { | 492 | { |
489 | queue.Enqueue(packet, highPriority); | 493 | queue.Enqueue(packet, highPriority); |
490 | return true; | 494 | return true; |
@@ -528,7 +532,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
528 | /// <returns>True if any packets were sent, otherwise false</returns> | 532 | /// <returns>True if any packets were sent, otherwise false</returns> |
529 | public bool DequeueOutgoing() | 533 | public bool DequeueOutgoing() |
530 | { | 534 | { |
531 | if (m_deliverPackets == false) return false; | 535 | // if (m_deliverPackets == false) return false; |
532 | 536 | ||
533 | OutgoingPacket packet = null; | 537 | OutgoingPacket packet = null; |
534 | DoubleLocklessQueue<OutgoingPacket> queue; | 538 | DoubleLocklessQueue<OutgoingPacket> queue; |
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 3b0312d..dea9d7f 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -1245,7 +1245,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
1245 | int dataLength = buffer.DataLength; | 1245 | int dataLength = buffer.DataLength; |
1246 | 1246 | ||
1247 | // NOTE: I'm seeing problems with some viewers when ACKs are appended to zerocoded packets so I've disabled that here | 1247 | // NOTE: I'm seeing problems with some viewers when ACKs are appended to zerocoded packets so I've disabled that here |
1248 | if (!isZerocoded) | 1248 | if (!isZerocoded && !isResend) |
1249 | { | 1249 | { |
1250 | // Keep appending ACKs until there is no room left in the buffer or there are | 1250 | // Keep appending ACKs until there is no room left in the buffer or there are |
1251 | // no more ACKs to append | 1251 | // no more ACKs to append |