aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-18 15:54:05 +0000
committerTeravus Ovares2007-11-18 15:54:05 +0000
commit615b40b68b2311433b855f8c1e961a8b71eb9b65 (patch)
treece9620d6f9e59e5e841f9746d738f6a71063eae4
parentcleaned up some mono compiler warnings (diff)
downloadopensim-SC_OLD-615b40b68b2311433b855f8c1e961a8b71eb9b65.zip
opensim-SC_OLD-615b40b68b2311433b855f8c1e961a8b71eb9b65.tar.gz
opensim-SC_OLD-615b40b68b2311433b855f8c1e961a8b71eb9b65.tar.bz2
opensim-SC_OLD-615b40b68b2311433b855f8c1e961a8b71eb9b65.tar.xz
* Refactored IClientAPI.OutPacket to require a second mandatory parameter. This parameter has an enum:int ThrottleOutPacketType and contains types; Resend, Land, Wind, Cloud, Task, Texture, and Asset.
-rw-r--r--OpenSim/Framework/ClientManager.cs2
-rw-r--r--OpenSim/Framework/Communications/Cache/AssetCache.cs16
-rw-r--r--OpenSim/Framework/Communications/Cache/AssetTransactions.cs6
-rw-r--r--OpenSim/Framework/IClientAPI.cs12
-rw-r--r--OpenSim/Region/ClientStack/ClientView.API.cs86
-rw-r--r--OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs6
-rw-r--r--OpenSim/Region/ClientStack/ClientView.PacketQueue.cs10
-rw-r--r--OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs14
-rw-r--r--OpenSim/Region/ClientStack/ClientView.cs2
-rw-r--r--OpenSim/Region/Environment/EstateManager.cs2
-rw-r--r--OpenSim/Region/Environment/LandManagement/Land.cs12
-rw-r--r--OpenSim/Region/Environment/LandManagement/LandManager.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/TextureDownloadModule.cs6
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs4
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs2
-rw-r--r--OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs2
17 files changed, 99 insertions, 87 deletions
diff --git a/OpenSim/Framework/ClientManager.cs b/OpenSim/Framework/ClientManager.cs
index e34c051..629aab5 100644
--- a/OpenSim/Framework/ClientManager.cs
+++ b/OpenSim/Framework/ClientManager.cs
@@ -122,7 +122,7 @@ namespace OpenSim.Framework
122 { 122 {
123 packet.AgentData.AgentID = client.AgentId; 123 packet.AgentData.AgentID = client.AgentId;
124 packet.AgentData.SessionID = client.SessionId; 124 packet.AgentData.SessionID = client.SessionId;
125 client.OutPacket(packet); 125 client.OutPacket(packet,ThrottleOutPacketType.Task);
126 } 126 }
127 } 127 }
128 } 128 }
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs
index 99041c1..edca142 100644
--- a/OpenSim/Framework/Communications/Cache/AssetCache.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs
@@ -520,7 +520,7 @@ namespace OpenSim.Framework.Communications.Cache
520 } 520 }
521 Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length; 521 Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length;
522 Transfer.TransferInfo.TransferID = req.TransferRequestID; 522 Transfer.TransferInfo.TransferID = req.TransferRequestID;
523 req.RequestUser.OutPacket(Transfer); 523 req.RequestUser.OutPacket(Transfer,ThrottleOutPacketType.Asset);
524 524
525 if (req.NumPackets == 1) 525 if (req.NumPackets == 1)
526 { 526 {
@@ -530,7 +530,7 @@ namespace OpenSim.Framework.Communications.Cache
530 TransferPacket.TransferData.TransferID = req.TransferRequestID; 530 TransferPacket.TransferData.TransferID = req.TransferRequestID;
531 TransferPacket.TransferData.Data = req.AssetInf.Data; 531 TransferPacket.TransferData.Data = req.AssetInf.Data;
532 TransferPacket.TransferData.Status = 1; 532 TransferPacket.TransferData.Status = 1;
533 req.RequestUser.OutPacket(TransferPacket); 533 req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
534 } 534 }
535 else 535 else
536 { 536 {
@@ -546,7 +546,7 @@ namespace OpenSim.Framework.Communications.Cache
546 Array.Copy(req.AssetInf.Data, chunk, req.AssetInf.Data.Length); 546 Array.Copy(req.AssetInf.Data, chunk, req.AssetInf.Data.Length);
547 TransferPacket.TransferData.Data = chunk; 547 TransferPacket.TransferData.Data = chunk;
548 TransferPacket.TransferData.Status = 1; 548 TransferPacket.TransferData.Status = 1;
549 req.RequestUser.OutPacket(TransferPacket); 549 req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
550 } 550 }
551 else 551 else
552 { 552 {
@@ -555,7 +555,7 @@ namespace OpenSim.Framework.Communications.Cache
555 555
556 TransferPacket.TransferData.Data = chunk; 556 TransferPacket.TransferData.Data = chunk;
557 TransferPacket.TransferData.Status = 0; 557 TransferPacket.TransferData.Status = 0;
558 req.RequestUser.OutPacket(TransferPacket); 558 req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
559 559
560 TransferPacket = new TransferPacketPacket(); 560 TransferPacket = new TransferPacketPacket();
561 TransferPacket.TransferData.Packet = 1; 561 TransferPacket.TransferData.Packet = 1;
@@ -565,7 +565,7 @@ namespace OpenSim.Framework.Communications.Cache
565 Array.Copy(req.AssetInf.Data, 1000, chunk1, 0, chunk1.Length); 565 Array.Copy(req.AssetInf.Data, 1000, chunk1, 0, chunk1.Length);
566 TransferPacket.TransferData.Data = chunk1; 566 TransferPacket.TransferData.Data = chunk1;
567 TransferPacket.TransferData.Status = 1; 567 TransferPacket.TransferData.Status = 1;
568 req.RequestUser.OutPacket(TransferPacket); 568 req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
569 } 569 }
570 } 570 }
571 } 571 }
@@ -741,7 +741,7 @@ namespace OpenSim.Framework.Communications.Cache
741 im.ImageID.Size = (uint) req.ImageInfo.Data.Length; 741 im.ImageID.Size = (uint) req.ImageInfo.Data.Length;
742 im.ImageData.Data = req.ImageInfo.Data; 742 im.ImageData.Data = req.ImageInfo.Data;
743 im.ImageID.Codec = 2; 743 im.ImageID.Codec = 2;
744 req.RequestUser.OutPacket(im); 744 req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
745 req.PacketCounter++; 745 req.PacketCounter++;
746 //req.ImageInfo.l= time; 746 //req.ImageInfo.l= time;
747 //System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID); 747 //System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID);
@@ -758,7 +758,7 @@ namespace OpenSim.Framework.Communications.Cache
758 im.ImageData.Data = new byte[600]; 758 im.ImageData.Data = new byte[600];
759 Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600); 759 Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600);
760 im.ImageID.Codec = 2; 760 im.ImageID.Codec = 2;
761 req.RequestUser.OutPacket(im); 761 req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
762 762
763 req.PacketCounter++; 763 req.PacketCounter++;
764 //req.ImageInfo.last_used = time; 764 //req.ImageInfo.last_used = time;
@@ -780,7 +780,7 @@ namespace OpenSim.Framework.Communications.Cache
780 //Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size); 780 //Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size);
781 im.ImageData.Data = new byte[size]; 781 im.ImageData.Data = new byte[size];
782 Array.Copy(req.ImageInfo.Data, 600 + (1000*(req.PacketCounter - 1)), im.ImageData.Data, 0, size); 782 Array.Copy(req.ImageInfo.Data, 600 + (1000*(req.PacketCounter - 1)), im.ImageData.Data, 0, size);
783 req.RequestUser.OutPacket(im); 783 req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
784 req.PacketCounter++; 784 req.PacketCounter++;
785 //req.ImageInfo.last_used = time; 785 //req.ImageInfo.last_used = time;
786 //System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID); 786 //System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID);
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs
index 9e9ec05..acd57b6 100644
--- a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs
@@ -221,7 +221,7 @@ namespace OpenSim.Framework.Communications.Cache
221 ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket(); 221 ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket();
222 newPack.XferID.ID = xferID; 222 newPack.XferID.ID = xferID;
223 newPack.XferID.Packet = packetID; 223 newPack.XferID.Packet = packetID;
224 ourClient.OutPacket(newPack); 224 ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset);
225 if ((packetID & 0x80000000) != 0) 225 if ((packetID & 0x80000000) != 0)
226 { 226 {
227 SendCompleteMessage(); 227 SendCompleteMessage();
@@ -262,7 +262,7 @@ namespace OpenSim.Framework.Communications.Cache
262 newPack.XferID.VFileID = Asset.FullID; 262 newPack.XferID.VFileID = Asset.FullID;
263 newPack.XferID.FilePath = 0; 263 newPack.XferID.FilePath = 0;
264 newPack.XferID.Filename = new byte[0]; 264 newPack.XferID.Filename = new byte[0];
265 ourClient.OutPacket(newPack); 265 ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset);
266 } 266 }
267 267
268 protected void SendCompleteMessage() 268 protected void SendCompleteMessage()
@@ -272,7 +272,7 @@ namespace OpenSim.Framework.Communications.Cache
272 newPack.AssetBlock.Type = Asset.Type; 272 newPack.AssetBlock.Type = Asset.Type;
273 newPack.AssetBlock.Success = true; 273 newPack.AssetBlock.Success = true;
274 newPack.AssetBlock.UUID = Asset.FullID; 274 newPack.AssetBlock.UUID = Asset.FullID;
275 ourClient.OutPacket(newPack); 275 ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset);
276 m_finished = true; 276 m_finished = true;
277 if (m_createItem) 277 if (m_createItem)
278 { 278 {
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 23181bf..0e8b82d 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -54,6 +54,16 @@ namespace OpenSim.Framework
54 StopTyping = 5, 54 StopTyping = 5,
55 Broadcast = 0xFF 55 Broadcast = 0xFF
56 } ; 56 } ;
57 public enum ThrottleOutPacketType : int
58 {
59 Resend = 0,
60 Land = 1,
61 Wind = 2,
62 Cloud = 3,
63 Task = 4,
64 Texture = 5,
65 Asset = 6
66 }
57 67
58 /// <summary> 68 /// <summary>
59 /// ChatFromViewer Arguments 69 /// ChatFromViewer Arguments
@@ -378,7 +388,7 @@ namespace OpenSim.Framework
378 388
379 uint CircuitCode { get; set; } 389 uint CircuitCode { get; set; }
380 390
381 void OutPacket(Packet newPack); 391 void OutPacket(Packet newPack, ThrottleOutPacketType packType);
382 void SendWearables(AvatarWearable[] wearables, int serial); 392 void SendWearables(AvatarWearable[] wearables, int serial);
383 void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry); 393 void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry);
384 void SendStartPingCheck(byte seq); 394 void SendStartPingCheck(byte seq);
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index 4aaa011..9182b5c 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -189,7 +189,7 @@ namespace OpenSim.Region.ClientStack
189 handshake.RegionInfo.TerrainDetail3 = regionInfo.EstateSettings.terrainDetail3; 189 handshake.RegionInfo.TerrainDetail3 = regionInfo.EstateSettings.terrainDetail3;
190 handshake.RegionInfo.CacheID = LLUUID.Random(); //I guess this is for the client to remember an old setting? 190 handshake.RegionInfo.CacheID = LLUUID.Random(); //I guess this is for the client to remember an old setting?
191 191
192 OutPacket(handshake); 192 OutPacket(handshake, ThrottleOutPacketType.Task);
193 } 193 }
194 194
195 /// <summary> 195 /// <summary>
@@ -214,7 +214,7 @@ namespace OpenSim.Region.ClientStack
214 } 214 }
215 mov.Data.LookAt = look; 215 mov.Data.LookAt = look;
216 216
217 OutPacket(mov); 217 OutPacket(mov, ThrottleOutPacketType.Task);
218 } 218 }
219 219
220 /// <summary> 220 /// <summary>
@@ -244,7 +244,7 @@ namespace OpenSim.Region.ClientStack
244 reply.ChatData.OwnerID = fromAgentID; 244 reply.ChatData.OwnerID = fromAgentID;
245 reply.ChatData.SourceID = fromAgentID; 245 reply.ChatData.SourceID = fromAgentID;
246 246
247 OutPacket(reply); 247 OutPacket(reply, ThrottleOutPacketType.Task);
248 } 248 }
249 249
250 /// <summary> 250 /// <summary>
@@ -274,7 +274,7 @@ namespace OpenSim.Region.ClientStack
274 msg.MessageBlock.Message = encUTF8.GetBytes(message + "\0"); 274 msg.MessageBlock.Message = encUTF8.GetBytes(message + "\0");
275 msg.MessageBlock.BinaryBucket = new byte[0]; 275 msg.MessageBlock.BinaryBucket = new byte[0];
276 276
277 OutPacket(msg); 277 OutPacket(msg, ThrottleOutPacketType.Task);
278 } 278 }
279 279
280 /// <summary> 280 /// <summary>
@@ -297,7 +297,7 @@ namespace OpenSim.Region.ClientStack
297 patches[3] = x + 3 + y*16; 297 patches[3] = x + 3 + y*16;
298 298
299 Packet layerpack = TerrainManager.CreateLandPacket(map, patches); 299 Packet layerpack = TerrainManager.CreateLandPacket(map, patches);
300 OutPacket(layerpack); 300 OutPacket(layerpack, ThrottleOutPacketType.Land);
301 } 301 }
302 } 302 }
303 } 303 }
@@ -326,7 +326,7 @@ namespace OpenSim.Region.ClientStack
326 patches[0] = patchx + 0 + patchy*16; 326 patches[0] = patchx + 0 + patchy*16;
327 327
328 Packet layerpack = TerrainManager.CreateLandPacket(map, patches); 328 Packet layerpack = TerrainManager.CreateLandPacket(map, patches);
329 OutPacket(layerpack); 329 OutPacket(layerpack, ThrottleOutPacketType.Land);
330 } 330 }
331 catch (Exception e) 331 catch (Exception e)
332 { 332 {
@@ -356,7 +356,7 @@ namespace OpenSim.Region.ClientStack
356 enablesimpacket.SimulatorInfo.IP += (uint) byteIP[1] << 8; 356 enablesimpacket.SimulatorInfo.IP += (uint) byteIP[1] << 8;
357 enablesimpacket.SimulatorInfo.IP += (uint) byteIP[0]; 357 enablesimpacket.SimulatorInfo.IP += (uint) byteIP[0];
358 enablesimpacket.SimulatorInfo.Port = neighbourPort; 358 enablesimpacket.SimulatorInfo.Port = neighbourPort;
359 OutPacket(enablesimpacket); 359 OutPacket(enablesimpacket, ThrottleOutPacketType.Task);
360 } 360 }
361 361
362 /// <summary> 362 /// <summary>
@@ -401,7 +401,7 @@ namespace OpenSim.Region.ClientStack
401 //newSimPack.RegionData.SeedCapability = new byte[0]; 401 //newSimPack.RegionData.SeedCapability = new byte[0];
402 newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL); 402 newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL);
403 403
404 OutPacket(newSimPack); 404 OutPacket(newSimPack, ThrottleOutPacketType.Task);
405 } 405 }
406 406
407 public void SendMapBlock(List<MapBlockData> mapBlocks) 407 public void SendMapBlock(List<MapBlockData> mapBlocks)
@@ -423,7 +423,7 @@ namespace OpenSim.Region.ClientStack
423 mapReply.Data[i].Access = mapBlocks[i].Access; 423 mapReply.Data[i].Access = mapBlocks[i].Access;
424 mapReply.Data[i].Agents = mapBlocks[i].Agents; 424 mapReply.Data[i].Agents = mapBlocks[i].Agents;
425 } 425 }
426 OutPacket(mapReply); 426 OutPacket(mapReply, ThrottleOutPacketType.Land);
427 } 427 }
428 428
429 public void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags) 429 public void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags)
@@ -434,7 +434,7 @@ namespace OpenSim.Region.ClientStack
434 tpLocal.Info.LocationID = 2; 434 tpLocal.Info.LocationID = 2;
435 tpLocal.Info.LookAt = lookAt; 435 tpLocal.Info.LookAt = lookAt;
436 tpLocal.Info.Position = position; 436 tpLocal.Info.Position = position;
437 OutPacket(tpLocal); 437 OutPacket(tpLocal, ThrottleOutPacketType.Task);
438 } 438 }
439 439
440 public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID, 440 public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID,
@@ -459,7 +459,7 @@ namespace OpenSim.Region.ClientStack
459 teleport.Info.SimPort = (ushort) newRegionEndPoint.Port; 459 teleport.Info.SimPort = (ushort) newRegionEndPoint.Port;
460 teleport.Info.LocationID = 4; 460 teleport.Info.LocationID = 4;
461 teleport.Info.TeleportFlags = 1 << 4; 461 teleport.Info.TeleportFlags = 1 << 4;
462 OutPacket(teleport); 462 OutPacket(teleport, ThrottleOutPacketType.Task);
463 } 463 }
464 464
465 /// <summary> 465 /// <summary>
@@ -471,7 +471,7 @@ namespace OpenSim.Region.ClientStack
471 tpCancel.Info.SessionID = m_sessionId; 471 tpCancel.Info.SessionID = m_sessionId;
472 tpCancel.Info.AgentID = AgentId; 472 tpCancel.Info.AgentID = AgentId;
473 473
474 OutPacket(tpCancel); 474 OutPacket(tpCancel, ThrottleOutPacketType.Task);
475 } 475 }
476 476
477 /// <summary> 477 /// <summary>
@@ -481,7 +481,7 @@ namespace OpenSim.Region.ClientStack
481 { 481 {
482 TeleportStartPacket tpStart = new TeleportStartPacket(); 482 TeleportStartPacket tpStart = new TeleportStartPacket();
483 tpStart.Info.TeleportFlags = 16; // Teleport via location 483 tpStart.Info.TeleportFlags = 16; // Teleport via location
484 OutPacket(tpStart); 484 OutPacket(tpStart, ThrottleOutPacketType.Task);
485 } 485 }
486 486
487 public void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance) 487 public void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance)
@@ -492,7 +492,7 @@ namespace OpenSim.Region.ClientStack
492 money.MoneyData.TransactionSuccess = success; 492 money.MoneyData.TransactionSuccess = success;
493 money.MoneyData.Description = description; 493 money.MoneyData.Description = description;
494 money.MoneyData.MoneyBalance = balance; 494 money.MoneyData.MoneyBalance = balance;
495 OutPacket(money); 495 OutPacket(money, ThrottleOutPacketType.Task);
496 } 496 }
497 497
498 public void SendStartPingCheck(byte seq) 498 public void SendStartPingCheck(byte seq)
@@ -500,7 +500,7 @@ namespace OpenSim.Region.ClientStack
500 StartPingCheckPacket pc = new StartPingCheckPacket(); 500 StartPingCheckPacket pc = new StartPingCheckPacket();
501 pc.PingID.PingID = seq; 501 pc.PingID.PingID = seq;
502 pc.Header.Reliable = false; 502 pc.Header.Reliable = false;
503 OutPacket(pc); 503 OutPacket(pc, ThrottleOutPacketType.Task);
504 } 504 }
505 505
506 public void SendKillObject(ulong regionHandle, uint localID) 506 public void SendKillObject(ulong regionHandle, uint localID)
@@ -509,7 +509,7 @@ namespace OpenSim.Region.ClientStack
509 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; 509 kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
510 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); 510 kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
511 kill.ObjectData[0].ID = localID; 511 kill.ObjectData[0].ID = localID;
512 OutPacket(kill); 512 OutPacket(kill, ThrottleOutPacketType.Task);
513 } 513 }
514 514
515 public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items) 515 public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items)
@@ -563,7 +563,7 @@ namespace OpenSim.Region.ClientStack
563 count++; 563 count++;
564 if (i == 40) 564 if (i == 40)
565 { 565 {
566 OutPacket(descend); 566 OutPacket(descend, ThrottleOutPacketType.Asset);
567 567
568 if ((items.Count - count) > 0) 568 if ((items.Count - count) > 0)
569 { 569 {
@@ -585,7 +585,7 @@ namespace OpenSim.Region.ClientStack
585 585
586 if (i < 40) 586 if (i < 40)
587 { 587 {
588 OutPacket(descend); 588 OutPacket(descend, ThrottleOutPacketType.Asset);
589 } 589 }
590 } 590 }
591 591
@@ -637,7 +637,7 @@ namespace OpenSim.Region.ClientStack
637 FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, 637 FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS,
638 FULL_MASK_PERMISSIONS); 638 FULL_MASK_PERMISSIONS);
639 639
640 OutPacket(inventoryReply); 640 OutPacket(inventoryReply, ThrottleOutPacketType.Asset);
641 } 641 }
642 642
643 public void SendInventoryItemUpdate(InventoryItemBase Item) 643 public void SendInventoryItemUpdate(InventoryItemBase Item)
@@ -677,7 +677,7 @@ namespace OpenSim.Region.ClientStack
677 FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, 677 FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS,
678 FULL_MASK_PERMISSIONS); 678 FULL_MASK_PERMISSIONS);
679 679
680 OutPacket(InventoryReply); 680 OutPacket(InventoryReply, ThrottleOutPacketType.Asset);
681 } 681 }
682 682
683 public void SendRemoveInventoryItem(LLUUID itemID) 683 public void SendRemoveInventoryItem(LLUUID itemID)
@@ -689,7 +689,7 @@ namespace OpenSim.Region.ClientStack
689 remove.InventoryData[0] = new RemoveInventoryItemPacket.InventoryDataBlock(); 689 remove.InventoryData[0] = new RemoveInventoryItemPacket.InventoryDataBlock();
690 remove.InventoryData[0].ItemID = itemID; 690 remove.InventoryData[0].ItemID = itemID;
691 691
692 OutPacket(remove); 692 OutPacket(remove, ThrottleOutPacketType.Asset);
693 } 693 }
694 694
695 public void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName) 695 public void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName)
@@ -698,7 +698,7 @@ namespace OpenSim.Region.ClientStack
698 replytask.InventoryData.TaskID = taskID; 698 replytask.InventoryData.TaskID = taskID;
699 replytask.InventoryData.Serial = serial; 699 replytask.InventoryData.Serial = serial;
700 replytask.InventoryData.Filename = fileName; 700 replytask.InventoryData.Filename = fileName;
701 OutPacket(replytask); 701 OutPacket(replytask, ThrottleOutPacketType.Asset);
702 } 702 }
703 703
704 public void SendXferPacket(ulong xferID, uint packet, byte[] data) 704 public void SendXferPacket(ulong xferID, uint packet, byte[] data)
@@ -707,11 +707,11 @@ namespace OpenSim.Region.ClientStack
707 sendXfer.XferID.ID = xferID; 707 sendXfer.XferID.ID = xferID;
708 sendXfer.XferID.Packet = packet; 708 sendXfer.XferID.Packet = packet;
709 sendXfer.DataPacket.Data = data; 709 sendXfer.DataPacket.Data = data;
710 OutPacket(sendXfer); 710 OutPacket(sendXfer, ThrottleOutPacketType.Task);
711 } 711 }
712 public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) 712 public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket)
713 { 713 {
714 OutPacket(replyPacket); 714 OutPacket(replyPacket, ThrottleOutPacketType.Task);
715 } 715 }
716 716
717 /// <summary> 717 /// <summary>
@@ -722,7 +722,7 @@ namespace OpenSim.Region.ClientStack
722 { 722 {
723 AlertMessagePacket alertPack = new AlertMessagePacket(); 723 AlertMessagePacket alertPack = new AlertMessagePacket();
724 alertPack.AlertData.Message = Helpers.StringToField(message); 724 alertPack.AlertData.Message = Helpers.StringToField(message);
725 OutPacket(alertPack); 725 OutPacket(alertPack, ThrottleOutPacketType.Task);
726 } 726 }
727 727
728 /// <summary> 728 /// <summary>
@@ -736,7 +736,7 @@ namespace OpenSim.Region.ClientStack
736 alertPack.AgentData.AgentID = AgentId; 736 alertPack.AgentData.AgentID = AgentId;
737 alertPack.AlertData.Message = Helpers.StringToField(message); 737 alertPack.AlertData.Message = Helpers.StringToField(message);
738 alertPack.AlertData.Modal = modal; 738 alertPack.AlertData.Modal = modal;
739 OutPacket(alertPack); 739 OutPacket(alertPack, ThrottleOutPacketType.Task);
740 } 740 }
741 741
742 public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, 742 public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message,
@@ -750,7 +750,7 @@ namespace OpenSim.Region.ClientStack
750 loadURL.Data.Message = Helpers.StringToField(message); 750 loadURL.Data.Message = Helpers.StringToField(message);
751 loadURL.Data.URL = Helpers.StringToField(url); 751 loadURL.Data.URL = Helpers.StringToField(url);
752 752
753 OutPacket(loadURL); 753 OutPacket(loadURL, ThrottleOutPacketType.Task);
754 } 754 }
755 755
756 756
@@ -762,7 +762,7 @@ namespace OpenSim.Region.ClientStack
762 preSound.DataBlock[0].ObjectID = objectID; 762 preSound.DataBlock[0].ObjectID = objectID;
763 preSound.DataBlock[0].OwnerID = ownerID; 763 preSound.DataBlock[0].OwnerID = ownerID;
764 preSound.DataBlock[0].SoundID = soundID; 764 preSound.DataBlock[0].SoundID = soundID;
765 OutPacket(preSound); 765 OutPacket(preSound, ThrottleOutPacketType.Task);
766 } 766 }
767 767
768 public void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, byte flags) 768 public void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, byte flags)
@@ -774,7 +774,7 @@ namespace OpenSim.Region.ClientStack
774 sound.DataBlock.Gain = gain; 774 sound.DataBlock.Gain = gain;
775 sound.DataBlock.Flags = flags; 775 sound.DataBlock.Flags = flags;
776 776
777 OutPacket(sound); 777 OutPacket(sound, ThrottleOutPacketType.Task);
778 } 778 }
779 779
780 public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) 780 public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel)
@@ -783,7 +783,7 @@ namespace OpenSim.Region.ClientStack
783 viewertime.TimeInfo.SunDirection = sunPos; 783 viewertime.TimeInfo.SunDirection = sunPos;
784 viewertime.TimeInfo.SunAngVelocity = sunVel; 784 viewertime.TimeInfo.SunAngVelocity = sunVel;
785 viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch(); 785 viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch();
786 OutPacket(viewertime); 786 OutPacket(viewertime, ThrottleOutPacketType.Task);
787 } 787 }
788 788
789 public void SendViewerTime(int phase) 789 public void SendViewerTime(int phase)
@@ -836,7 +836,7 @@ namespace OpenSim.Region.ClientStack
836 } 836 }
837 viewertime.TimeInfo.SunAngVelocity = new LLVector3(0, 0.0f, 10.0f); 837 viewertime.TimeInfo.SunAngVelocity = new LLVector3(0, 0.0f, 10.0f);
838 viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch(); 838 viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch();
839 OutPacket(viewertime); 839 OutPacket(viewertime, ThrottleOutPacketType.Task);
840 } 840 }
841 841
842 public void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember, 842 public void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember,
@@ -855,7 +855,7 @@ namespace OpenSim.Region.ClientStack
855 avatarReply.PropertiesData.ImageID = imageID; 855 avatarReply.PropertiesData.ImageID = imageID;
856 avatarReply.PropertiesData.ProfileURL = Helpers.StringToField(profileURL); 856 avatarReply.PropertiesData.ProfileURL = Helpers.StringToField(profileURL);
857 avatarReply.PropertiesData.PartnerID = partnerID; 857 avatarReply.PropertiesData.PartnerID = partnerID;
858 OutPacket(avatarReply); 858 OutPacket(avatarReply, ThrottleOutPacketType.Task);
859 } 859 }
860 860
861 #endregion 861 #endregion
@@ -884,7 +884,7 @@ namespace OpenSim.Region.ClientStack
884 aw.WearableData[i] = awb; 884 aw.WearableData[i] = awb;
885 } 885 }
886 886
887 OutPacket(aw); 887 OutPacket(aw, ThrottleOutPacketType.Task);
888 } 888 }
889 889
890 /// <summary> 890 /// <summary>
@@ -909,7 +909,7 @@ namespace OpenSim.Region.ClientStack
909 909
910 avp.Sender.IsTrial = false; 910 avp.Sender.IsTrial = false;
911 avp.Sender.ID = agentID; 911 avp.Sender.ID = agentID;
912 OutPacket(avp); 912 OutPacket(avp, ThrottleOutPacketType.Task);
913 } 913 }
914 914
915 public void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) 915 public void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId)
@@ -924,7 +924,7 @@ namespace OpenSim.Region.ClientStack
924 ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock(); 924 ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock();
925 ani.AnimationList[0].AnimID = animID; 925 ani.AnimationList[0].AnimID = animID;
926 ani.AnimationList[0].AnimSequenceID = seq; 926 ani.AnimationList[0].AnimSequenceID = seq;
927 OutPacket(ani); 927 OutPacket(ani, ThrottleOutPacketType.Task);
928 } 928 }
929 929
930 #endregion 930 #endregion
@@ -959,7 +959,7 @@ namespace OpenSim.Region.ClientStack
959 byte[] pb = pos2.GetBytes(); 959 byte[] pb = pos2.GetBytes();
960 Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); 960 Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length);
961 961
962 OutPacket(objupdate); 962 OutPacket(objupdate, ThrottleOutPacketType.Task);
963 } 963 }
964 964
965 /// <summary> 965 /// <summary>
@@ -981,7 +981,7 @@ namespace OpenSim.Region.ClientStack
981 terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; 981 terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
982 terse.ObjectData[0] = terseBlock; 982 terse.ObjectData[0] = terseBlock;
983 983
984 OutPacket(terse); 984 OutPacket(terse, ThrottleOutPacketType.Task);
985 } 985 }
986 986
987 public void SendCoarseLocationUpdate(List<LLVector3> CoarseLocations) 987 public void SendCoarseLocationUpdate(List<LLVector3> CoarseLocations)
@@ -1003,7 +1003,7 @@ namespace OpenSim.Region.ClientStack
1003 ib.You = -1; 1003 ib.You = -1;
1004 ib.Prey = -1; 1004 ib.Prey = -1;
1005 loc.Index = ib; 1005 loc.Index = ib;
1006 OutPacket(loc); 1006 OutPacket(loc, ThrottleOutPacketType.Task);
1007 } 1007 }
1008 1008
1009 #endregion 1009 #endregion
@@ -1027,7 +1027,7 @@ namespace OpenSim.Region.ClientStack
1027 attach.ObjectData[0].ObjectLocalID = localID; 1027 attach.ObjectData[0].ObjectLocalID = localID;
1028 attach.ObjectData[0].Rotation = rotation; 1028 attach.ObjectData[0].Rotation = rotation;
1029 1029
1030 OutPacket(attach); 1030 OutPacket(attach, ThrottleOutPacketType.Task);
1031 } 1031 }
1032 1032
1033 public void SendPrimitiveToClient( 1033 public void SendPrimitiveToClient(
@@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ClientStack
1062 byte[] rot = rotation.GetBytes(); 1062 byte[] rot = rotation.GetBytes();
1063 Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length); 1063 Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length);
1064 1064
1065 OutPacket(outPacket); 1065 OutPacket(outPacket, ThrottleOutPacketType.Task);
1066 } 1066 }
1067 1067
1068 /// <summary> 1068 /// <summary>
@@ -1084,7 +1084,7 @@ namespace OpenSim.Region.ClientStack
1084 terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; 1084 terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
1085 terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity); 1085 terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity);
1086 1086
1087 OutPacket(terse); 1087 OutPacket(terse, ThrottleOutPacketType.Task);
1088 } 1088 }
1089 public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, 1089 public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
1090 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) 1090 LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity)
@@ -1096,7 +1096,7 @@ namespace OpenSim.Region.ClientStack
1096 terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; 1096 terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
1097 terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity); 1097 terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity);
1098 1098
1099 OutPacket(terse); 1099 OutPacket(terse, ThrottleOutPacketType.Task);
1100 } 1100 }
1101 1101
1102 1102
@@ -1432,7 +1432,7 @@ namespace OpenSim.Region.ClientStack
1432 packet.UUIDNameBlock[0].FirstName = Helpers.StringToField(firstname); 1432 packet.UUIDNameBlock[0].FirstName = Helpers.StringToField(firstname);
1433 packet.UUIDNameBlock[0].LastName = Helpers.StringToField(lastname); 1433 packet.UUIDNameBlock[0].LastName = Helpers.StringToField(lastname);
1434 1434
1435 OutPacket(packet); 1435 OutPacket(packet, ThrottleOutPacketType.Task);
1436 } 1436 }
1437 1437
1438 #endregion 1438 #endregion
diff --git a/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs b/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs
index d589a7b..5753018 100644
--- a/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs
+++ b/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs
@@ -84,7 +84,7 @@ namespace OpenSim.Region.ClientStack
84 cachedresp.WearableData[i].TextureID = LLUUID.Zero; 84 cachedresp.WearableData[i].TextureID = LLUUID.Zero;
85 cachedresp.WearableData[i].HostName = new byte[0]; 85 cachedresp.WearableData[i].HostName = new byte[0];
86 } 86 }
87 OutPacket(cachedresp); 87 OutPacket(cachedresp, ThrottleOutPacketType.Texture);
88 return true; 88 return true;
89 } 89 }
90 90
@@ -220,7 +220,7 @@ namespace OpenSim.Region.ClientStack
220 mapReply.LayerData[0].Top = 30000; 220 mapReply.LayerData[0].Top = 30000;
221 mapReply.LayerData[0].Right = 30000; 221 mapReply.LayerData[0].Right = 30000;
222 mapReply.LayerData[0].ImageID = new LLUUID("00000000-0000-0000-9999-000000000006"); 222 mapReply.LayerData[0].ImageID = new LLUUID("00000000-0000-0000-9999-000000000006");
223 OutPacket(mapReply); 223 OutPacket(mapReply, ThrottleOutPacketType.Land);
224 } 224 }
225 225
226 public void RequestMapBlocks(int minX, int minY, int maxX, int maxY) 226 public void RequestMapBlocks(int minX, int minY, int maxX, int maxY)
@@ -250,7 +250,7 @@ namespace OpenSim.Region.ClientStack
250 mbReply.Data[iii].X = System.Convert.ToUInt16(mp["x"]); 250 mbReply.Data[iii].X = System.Convert.ToUInt16(mp["x"]);
251 mbReply.Data[iii].Y = System.Convert.ToUInt16(mp["y"]); 251 mbReply.Data[iii].Y = System.Convert.ToUInt16(mp["y"]);
252 } 252 }
253 this.OutPacket(mbReply); 253 this.OutPacket(mbReply, ThrottleOutPacketType.Land);
254 */ 254 */
255 } 255 }
256 } 256 }
diff --git a/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs b/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs
index dc7952e..179d02a 100644
--- a/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs
+++ b/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs
@@ -197,7 +197,7 @@ namespace OpenSim.Region.ClientStack
197 StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack; 197 StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack;
198 CompletePingCheckPacket endPing = new CompletePingCheckPacket(); 198 CompletePingCheckPacket endPing = new CompletePingCheckPacket();
199 endPing.PingID.PingID = startPing.PingID.PingID; 199 endPing.PingID.PingID = startPing.PingID.PingID;
200 OutPacket(endPing); 200 OutPacket(endPing, ThrottleOutPacketType.Task);
201 } 201 }
202 else 202 else
203 { 203 {
@@ -208,7 +208,7 @@ namespace OpenSim.Region.ClientStack
208 } 208 }
209 } 209 }
210 210
211 public virtual void OutPacket(Packet NewPack) 211 public virtual void OutPacket(Packet NewPack, ThrottleOutPacketType throttlePacketType)
212 { 212 {
213 QueItem item = new QueItem(); 213 QueItem item = new QueItem();
214 item.Packet = NewPack; 214 item.Packet = NewPack;
@@ -228,7 +228,7 @@ namespace OpenSim.Region.ClientStack
228 ack_it.Packets[0].ID = Pack.Header.Sequence; 228 ack_it.Packets[0].ID = Pack.Header.Sequence;
229 ack_it.Header.Reliable = false; 229 ack_it.Header.Reliable = false;
230 230
231 OutPacket(ack_it); 231 OutPacket(ack_it, ThrottleOutPacketType.Task);
232 } 232 }
233 /* 233 /*
234 if (Pack.Header.Reliable) 234 if (Pack.Header.Reliable)
@@ -255,7 +255,7 @@ namespace OpenSim.Region.ClientStack
255 (now - packet.TickCount) + "ms have passed"); 255 (now - packet.TickCount) + "ms have passed");
256 256
257 packet.Header.Resent = true; 257 packet.Header.Resent = true;
258 OutPacket(packet); 258 OutPacket(packet, ThrottleOutPacketType.Resend);
259 } 259 }
260 } 260 }
261 } 261 }
@@ -289,7 +289,7 @@ namespace OpenSim.Region.ClientStack
289 } 289 }
290 290
291 acks.Header.Reliable = false; 291 acks.Header.Reliable = false;
292 OutPacket(acks); 292 OutPacket(acks, ThrottleOutPacketType.Task);
293 293
294 PendingAcks.Clear(); 294 PendingAcks.Clear();
295 } 295 }
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
index 507bd64..f62407d 100644
--- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
+++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
@@ -635,13 +635,13 @@ namespace OpenSim.Region.ClientStack
635 635
636 TeleportStartPacket tpStart = new TeleportStartPacket(); 636 TeleportStartPacket tpStart = new TeleportStartPacket();
637 tpStart.Info.TeleportFlags = 8; // tp via lm 637 tpStart.Info.TeleportFlags = 8; // tp via lm
638 OutPacket(tpStart); 638 OutPacket(tpStart, ThrottleOutPacketType.Task);
639 639
640 TeleportProgressPacket tpProgress = new TeleportProgressPacket(); 640 TeleportProgressPacket tpProgress = new TeleportProgressPacket();
641 tpProgress.Info.Message = (new ASCIIEncoding()).GetBytes("sending_landmark"); 641 tpProgress.Info.Message = (new ASCIIEncoding()).GetBytes("sending_landmark");
642 tpProgress.Info.TeleportFlags = 8; 642 tpProgress.Info.TeleportFlags = 8;
643 tpProgress.AgentData.AgentID = tpReq.Info.AgentID; 643 tpProgress.AgentData.AgentID = tpReq.Info.AgentID;
644 OutPacket(tpProgress); 644 OutPacket(tpProgress, ThrottleOutPacketType.Task);
645 645
646 // Fetch landmark 646 // Fetch landmark
647 LLUUID lmid = tpReq.Info.LandmarkID; 647 LLUUID lmid = tpReq.Info.LandmarkID;
@@ -658,14 +658,14 @@ namespace OpenSim.Region.ClientStack
658 tpLocal.Info.TeleportFlags = 8; // Teleport via landmark 658 tpLocal.Info.TeleportFlags = 8; // Teleport via landmark
659 tpLocal.Info.LocationID = 2; 659 tpLocal.Info.LocationID = 2;
660 tpLocal.Info.Position = lm.Position; 660 tpLocal.Info.Position = lm.Position;
661 OutPacket(tpLocal); 661 OutPacket(tpLocal, ThrottleOutPacketType.Task);
662 } 662 }
663 else 663 else
664 { 664 {
665 TeleportCancelPacket tpCancel = new TeleportCancelPacket(); 665 TeleportCancelPacket tpCancel = new TeleportCancelPacket();
666 tpCancel.Info.AgentID = tpReq.Info.AgentID; 666 tpCancel.Info.AgentID = tpReq.Info.AgentID;
667 tpCancel.Info.SessionID = tpReq.Info.SessionID; 667 tpCancel.Info.SessionID = tpReq.Info.SessionID;
668 OutPacket(tpCancel); 668 OutPacket(tpCancel, ThrottleOutPacketType.Task);
669 } 669 }
670 } 670 }
671 else 671 else
@@ -675,7 +675,7 @@ namespace OpenSim.Region.ClientStack
675 TeleportCancelPacket tpCancel = new TeleportCancelPacket(); 675 TeleportCancelPacket tpCancel = new TeleportCancelPacket();
676 tpCancel.Info.AgentID = tpReq.Info.AgentID; 676 tpCancel.Info.AgentID = tpReq.Info.AgentID;
677 tpCancel.Info.SessionID = tpReq.Info.SessionID; 677 tpCancel.Info.SessionID = tpReq.Info.SessionID;
678 OutPacket(tpCancel); 678 OutPacket(tpCancel, ThrottleOutPacketType.Task);
679 } 679 }
680 break; 680 break;
681 case PacketType.TeleportLocationRequest: 681 case PacketType.TeleportLocationRequest:
@@ -693,7 +693,7 @@ namespace OpenSim.Region.ClientStack
693 TeleportCancelPacket tpCancel = new TeleportCancelPacket(); 693 TeleportCancelPacket tpCancel = new TeleportCancelPacket();
694 tpCancel.Info.SessionID = tpLocReq.AgentData.SessionID; 694 tpCancel.Info.SessionID = tpLocReq.AgentData.SessionID;
695 tpCancel.Info.AgentID = tpLocReq.AgentData.AgentID; 695 tpCancel.Info.AgentID = tpLocReq.AgentData.AgentID;
696 OutPacket(tpCancel); 696 OutPacket(tpCancel, ThrottleOutPacketType.Task);
697 } 697 }
698 break; 698 break;
699 699
@@ -904,7 +904,7 @@ namespace OpenSim.Region.ClientStack
904 logReply.InventoryData[0] = new LogoutReplyPacket.InventoryDataBlock(); 904 logReply.InventoryData[0] = new LogoutReplyPacket.InventoryDataBlock();
905 logReply.InventoryData[0].ItemID = LLUUID.Zero; 905 logReply.InventoryData[0].ItemID = LLUUID.Zero;
906 906
907 OutPacket(logReply); 907 OutPacket(logReply, ThrottleOutPacketType.Task);
908 } 908 }
909 } 909 }
910} 910}
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs
index 353a24c..10f880b 100644
--- a/OpenSim/Region/ClientStack/ClientView.cs
+++ b/OpenSim/Region/ClientStack/ClientView.cs
@@ -163,7 +163,7 @@ namespace OpenSim.Region.ClientStack
163 clientPingTimer.Stop(); 163 clientPingTimer.Stop();
164 164
165 libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); 165 libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket();
166 OutPacket(disable); 166 OutPacket(disable, ThrottleOutPacketType.Task);
167 167
168 ClientThread.Abort(); 168 ClientThread.Abort();
169 } 169 }
diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs
index 9e32b35..c569fc5 100644
--- a/OpenSim/Region/Environment/EstateManager.cs
+++ b/OpenSim/Region/Environment/EstateManager.cs
@@ -370,7 +370,7 @@ namespace OpenSim.Region.Environment
370 regionInfoPacket.RegionInfo.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun; 370 regionInfoPacket.RegionInfo.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun;
371 regionInfoPacket.RegionInfo.WaterHeight = m_regInfo.EstateSettings.waterHeight; 371 regionInfoPacket.RegionInfo.WaterHeight = m_regInfo.EstateSettings.waterHeight;
372 372
373 remote_client.OutPacket(regionInfoPacket); 373 remote_client.OutPacket(regionInfoPacket, ThrottleOutPacketType.Task);
374 } 374 }
375 375
376 public void sendRegionHandshake(IClientAPI remoteClient) 376 public void sendRegionHandshake(IClientAPI remoteClient)
diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs
index bf35b57..b566387 100644
--- a/OpenSim/Region/Environment/LandManagement/Land.cs
+++ b/OpenSim/Region/Environment/LandManagement/Land.cs
@@ -191,7 +191,7 @@ namespace OpenSim.Region.Environment.LandManagement
191 landData.selectedPrims; 191 landData.selectedPrims;
192 updatePacket.ParcelData.UserLocation = landData.userLocation; 192 updatePacket.ParcelData.UserLocation = landData.userLocation;
193 updatePacket.ParcelData.UserLookAt = landData.userLookAt; 193 updatePacket.ParcelData.UserLookAt = landData.userLookAt;
194 remote_client.OutPacket((Packet) updatePacket); 194 remote_client.OutPacket((Packet) updatePacket, ThrottleOutPacketType.Task);
195 } 195 }
196 196
197 public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client) 197 public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client)
@@ -534,13 +534,14 @@ namespace OpenSim.Region.Environment.LandManagement
534 resultLocalIDs.RemoveAt(0); 534 resultLocalIDs.RemoveAt(0);
535 } 535 }
536 pack.Data = data; 536 pack.Data = data;
537 remote_client.OutPacket((Packet) pack); 537 remote_client.OutPacket((Packet) pack, ThrottleOutPacketType.Task);
538 } 538 }
539 } 539 }
540 540
541 public void sendLandObjectOwners(IClientAPI remote_client) 541 public void sendLandObjectOwners(IClientAPI remote_client)
542 { 542 {
543 Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>(); 543 Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>();
544 ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket();
544 foreach (SceneObjectGroup obj in primsOverMe) 545 foreach (SceneObjectGroup obj in primsOverMe)
545 { 546 {
546 if (!ownersAndCount.ContainsKey(obj.OwnerID)) 547 if (!ownersAndCount.ContainsKey(obj.OwnerID))
@@ -570,11 +571,12 @@ namespace OpenSim.Region.Environment.LandManagement
570 571
571 num++; 572 num++;
572 } 573 }
573 574
574 ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket();
575 pack.Data = dataBlock; 575 pack.Data = dataBlock;
576 remote_client.OutPacket(pack); 576
577
577 } 578 }
579 remote_client.OutPacket(pack, ThrottleOutPacketType.Task);
578 } 580 }
579 581
580 #endregion 582 #endregion
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs
index a1cfa8a..dfeb36a 100644
--- a/OpenSim/Region/Environment/LandManagement/LandManager.cs
+++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs
@@ -441,7 +441,7 @@ namespace OpenSim.Region.Environment.LandManagement
441 packet = new ParcelOverlayPacket(); 441 packet = new ParcelOverlayPacket();
442 packet.ParcelData.Data = byteArray; 442 packet.ParcelData.Data = byteArray;
443 packet.ParcelData.SequenceID = sequenceID; 443 packet.ParcelData.SequenceID = sequenceID;
444 remote_client.OutPacket((Packet) packet); 444 remote_client.OutPacket((Packet)packet, ThrottleOutPacketType.Task);
445 sequenceID++; 445 sequenceID++;
446 byteArray = new byte[LAND_BLOCKS_PER_PACKET]; 446 byteArray = new byte[LAND_BLOCKS_PER_PACKET];
447 } 447 }
diff --git a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
index 87d6231..902b669 100644
--- a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
+++ b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
@@ -212,7 +212,7 @@ namespace OpenSim.Region.Environment.Modules
212 im.ImageID.Size = (uint) m_asset.Data.Length; 212 im.ImageID.Size = (uint) m_asset.Data.Length;
213 im.ImageData.Data = m_asset.Data; 213 im.ImageData.Data = m_asset.Data;
214 im.ImageID.Codec = 2; 214 im.ImageID.Codec = 2;
215 req.RequestUser.OutPacket(im); 215 req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
216 PacketCounter++; 216 PacketCounter++;
217 } 217 }
218 else 218 else
@@ -225,7 +225,7 @@ namespace OpenSim.Region.Environment.Modules
225 im.ImageData.Data = new byte[600]; 225 im.ImageData.Data = new byte[600];
226 Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600); 226 Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600);
227 im.ImageID.Codec = 2; 227 im.ImageID.Codec = 2;
228 req.RequestUser.OutPacket(im); 228 req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
229 PacketCounter++; 229 PacketCounter++;
230 } 230 }
231 } 231 }
@@ -239,7 +239,7 @@ namespace OpenSim.Region.Environment.Modules
239 if (size > 1000) size = 1000; 239 if (size > 1000) size = 1000;
240 im.ImageData.Data = new byte[size]; 240 im.ImageData.Data = new byte[size];
241 Array.Copy(m_asset.Data, 600 + (1000*(PacketCounter - 1)), im.ImageData.Data, 0, size); 241 Array.Copy(m_asset.Data, 600 + (1000*(PacketCounter - 1)), im.ImageData.Data, 0, size);
242 req.RequestUser.OutPacket(im); 242 req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
243 PacketCounter++; 243 PacketCounter++;
244 } 244 }
245 } 245 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 87bd0c1..dcba9bd 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -962,7 +962,7 @@ namespace OpenSim.Region.Environment.Scenes
962 if (presence != null) 962 if (presence != null)
963 { 963 {
964 libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); 964 libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket();
965 presence.ControllingClient.OutPacket(disable); 965 presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task);
966 } 966 }
967 } 967 }
968 } 968 }
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 628bd72..38962c1 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -568,7 +568,7 @@ namespace OpenSim.Region.Environment.Scenes
568 objPropDB.Name = Helpers.StringToField(RootPart.Name); 568 objPropDB.Name = Helpers.StringToField(RootPart.Name);
569 objPropDB.Description = Helpers.StringToField(RootPart.Description); 569 objPropDB.Description = Helpers.StringToField(RootPart.Description);
570 objPropFamilyPack.ObjectData = objPropDB; 570 objPropFamilyPack.ObjectData = objPropDB;
571 remoteClient.OutPacket(objPropFamilyPack); 571 remoteClient.OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task);
572 572
573 } 573 }
574 public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) 574 public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID)
@@ -956,7 +956,7 @@ namespace OpenSim.Region.Environment.Scenes
956 proper.ObjectData[0].EveryoneMask = m_rootPart.EveryoneMask; 956 proper.ObjectData[0].EveryoneMask = m_rootPart.EveryoneMask;
957 proper.ObjectData[0].BaseMask = m_rootPart.BaseMask; 957 proper.ObjectData[0].BaseMask = m_rootPart.BaseMask;
958 958
959 client.OutPacket(proper); 959 client.OutPacket(proper, ThrottleOutPacketType.Task);
960 } 960 }
961 961
962 /// <summary> 962 /// <summary>
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 38523e0..7927de6 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -641,7 +641,7 @@ namespace OpenSim.Region.Environment.Scenes
641 avatarSitResponse.SitTransform.SitPosition = offset; 641 avatarSitResponse.SitTransform.SitPosition = offset;
642 avatarSitResponse.SitTransform.SitRotation = new LLQuaternion(0.0f, 0.0f, 0.0f, 1.0f); 642 avatarSitResponse.SitTransform.SitRotation = new LLQuaternion(0.0f, 0.0f, 0.0f, 1.0f);
643 643
644 remoteClient.OutPacket(avatarSitResponse); 644 remoteClient.OutPacket(avatarSitResponse, ThrottleOutPacketType.Task);
645 } 645 }
646 646
647 public void HandleAgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset) 647 public void HandleAgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset)
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
index f78dc8f..f7af2f2 100644
--- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs
@@ -168,7 +168,7 @@ namespace SimpleApp
168 } 168 }
169 169
170 170
171 public virtual void OutPacket(Packet newPack) 171 public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType)
172 { 172 {
173 } 173 }
174 174