* 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.

afrisby
Teravus Ovares 2007-11-18 15:54:05 +00:00
parent 924026d01c
commit 615b40b68b
17 changed files with 99 additions and 87 deletions

View File

@ -122,7 +122,7 @@ namespace OpenSim.Framework
{ {
packet.AgentData.AgentID = client.AgentId; packet.AgentData.AgentID = client.AgentId;
packet.AgentData.SessionID = client.SessionId; packet.AgentData.SessionID = client.SessionId;
client.OutPacket(packet); client.OutPacket(packet,ThrottleOutPacketType.Task);
} }
} }
} }

View File

@ -520,7 +520,7 @@ namespace OpenSim.Framework.Communications.Cache
} }
Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length; Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length;
Transfer.TransferInfo.TransferID = req.TransferRequestID; Transfer.TransferInfo.TransferID = req.TransferRequestID;
req.RequestUser.OutPacket(Transfer); req.RequestUser.OutPacket(Transfer,ThrottleOutPacketType.Asset);
if (req.NumPackets == 1) if (req.NumPackets == 1)
{ {
@ -530,7 +530,7 @@ namespace OpenSim.Framework.Communications.Cache
TransferPacket.TransferData.TransferID = req.TransferRequestID; TransferPacket.TransferData.TransferID = req.TransferRequestID;
TransferPacket.TransferData.Data = req.AssetInf.Data; TransferPacket.TransferData.Data = req.AssetInf.Data;
TransferPacket.TransferData.Status = 1; TransferPacket.TransferData.Status = 1;
req.RequestUser.OutPacket(TransferPacket); req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
} }
else else
{ {
@ -546,7 +546,7 @@ namespace OpenSim.Framework.Communications.Cache
Array.Copy(req.AssetInf.Data, chunk, req.AssetInf.Data.Length); Array.Copy(req.AssetInf.Data, chunk, req.AssetInf.Data.Length);
TransferPacket.TransferData.Data = chunk; TransferPacket.TransferData.Data = chunk;
TransferPacket.TransferData.Status = 1; TransferPacket.TransferData.Status = 1;
req.RequestUser.OutPacket(TransferPacket); req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
} }
else else
{ {
@ -555,7 +555,7 @@ namespace OpenSim.Framework.Communications.Cache
TransferPacket.TransferData.Data = chunk; TransferPacket.TransferData.Data = chunk;
TransferPacket.TransferData.Status = 0; TransferPacket.TransferData.Status = 0;
req.RequestUser.OutPacket(TransferPacket); req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
TransferPacket = new TransferPacketPacket(); TransferPacket = new TransferPacketPacket();
TransferPacket.TransferData.Packet = 1; TransferPacket.TransferData.Packet = 1;
@ -565,7 +565,7 @@ namespace OpenSim.Framework.Communications.Cache
Array.Copy(req.AssetInf.Data, 1000, chunk1, 0, chunk1.Length); Array.Copy(req.AssetInf.Data, 1000, chunk1, 0, chunk1.Length);
TransferPacket.TransferData.Data = chunk1; TransferPacket.TransferData.Data = chunk1;
TransferPacket.TransferData.Status = 1; TransferPacket.TransferData.Status = 1;
req.RequestUser.OutPacket(TransferPacket); req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset);
} }
} }
} }
@ -741,7 +741,7 @@ namespace OpenSim.Framework.Communications.Cache
im.ImageID.Size = (uint) req.ImageInfo.Data.Length; im.ImageID.Size = (uint) req.ImageInfo.Data.Length;
im.ImageData.Data = req.ImageInfo.Data; im.ImageData.Data = req.ImageInfo.Data;
im.ImageID.Codec = 2; im.ImageID.Codec = 2;
req.RequestUser.OutPacket(im); req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
req.PacketCounter++; req.PacketCounter++;
//req.ImageInfo.l= time; //req.ImageInfo.l= time;
//System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID); //System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID);
@ -758,7 +758,7 @@ namespace OpenSim.Framework.Communications.Cache
im.ImageData.Data = new byte[600]; im.ImageData.Data = new byte[600];
Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600); Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600);
im.ImageID.Codec = 2; im.ImageID.Codec = 2;
req.RequestUser.OutPacket(im); req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
req.PacketCounter++; req.PacketCounter++;
//req.ImageInfo.last_used = time; //req.ImageInfo.last_used = time;
@ -780,7 +780,7 @@ namespace OpenSim.Framework.Communications.Cache
//Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size); //Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size);
im.ImageData.Data = new byte[size]; im.ImageData.Data = new byte[size];
Array.Copy(req.ImageInfo.Data, 600 + (1000*(req.PacketCounter - 1)), im.ImageData.Data, 0, size); Array.Copy(req.ImageInfo.Data, 600 + (1000*(req.PacketCounter - 1)), im.ImageData.Data, 0, size);
req.RequestUser.OutPacket(im); req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
req.PacketCounter++; req.PacketCounter++;
//req.ImageInfo.last_used = time; //req.ImageInfo.last_used = time;
//System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID); //System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID);

View File

@ -221,7 +221,7 @@ namespace OpenSim.Framework.Communications.Cache
ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket(); ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket();
newPack.XferID.ID = xferID; newPack.XferID.ID = xferID;
newPack.XferID.Packet = packetID; newPack.XferID.Packet = packetID;
ourClient.OutPacket(newPack); ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset);
if ((packetID & 0x80000000) != 0) if ((packetID & 0x80000000) != 0)
{ {
SendCompleteMessage(); SendCompleteMessage();
@ -262,7 +262,7 @@ namespace OpenSim.Framework.Communications.Cache
newPack.XferID.VFileID = Asset.FullID; newPack.XferID.VFileID = Asset.FullID;
newPack.XferID.FilePath = 0; newPack.XferID.FilePath = 0;
newPack.XferID.Filename = new byte[0]; newPack.XferID.Filename = new byte[0];
ourClient.OutPacket(newPack); ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset);
} }
protected void SendCompleteMessage() protected void SendCompleteMessage()
@ -272,7 +272,7 @@ namespace OpenSim.Framework.Communications.Cache
newPack.AssetBlock.Type = Asset.Type; newPack.AssetBlock.Type = Asset.Type;
newPack.AssetBlock.Success = true; newPack.AssetBlock.Success = true;
newPack.AssetBlock.UUID = Asset.FullID; newPack.AssetBlock.UUID = Asset.FullID;
ourClient.OutPacket(newPack); ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset);
m_finished = true; m_finished = true;
if (m_createItem) if (m_createItem)
{ {

View File

@ -54,6 +54,16 @@ namespace OpenSim.Framework
StopTyping = 5, StopTyping = 5,
Broadcast = 0xFF Broadcast = 0xFF
} ; } ;
public enum ThrottleOutPacketType : int
{
Resend = 0,
Land = 1,
Wind = 2,
Cloud = 3,
Task = 4,
Texture = 5,
Asset = 6
}
/// <summary> /// <summary>
/// ChatFromViewer Arguments /// ChatFromViewer Arguments
@ -378,7 +388,7 @@ namespace OpenSim.Framework
uint CircuitCode { get; set; } uint CircuitCode { get; set; }
void OutPacket(Packet newPack); void OutPacket(Packet newPack, ThrottleOutPacketType packType);
void SendWearables(AvatarWearable[] wearables, int serial); void SendWearables(AvatarWearable[] wearables, int serial);
void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry); void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry);
void SendStartPingCheck(byte seq); void SendStartPingCheck(byte seq);

View File

@ -189,7 +189,7 @@ namespace OpenSim.Region.ClientStack
handshake.RegionInfo.TerrainDetail3 = regionInfo.EstateSettings.terrainDetail3; handshake.RegionInfo.TerrainDetail3 = regionInfo.EstateSettings.terrainDetail3;
handshake.RegionInfo.CacheID = LLUUID.Random(); //I guess this is for the client to remember an old setting? handshake.RegionInfo.CacheID = LLUUID.Random(); //I guess this is for the client to remember an old setting?
OutPacket(handshake); OutPacket(handshake, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -214,7 +214,7 @@ namespace OpenSim.Region.ClientStack
} }
mov.Data.LookAt = look; mov.Data.LookAt = look;
OutPacket(mov); OutPacket(mov, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -244,7 +244,7 @@ namespace OpenSim.Region.ClientStack
reply.ChatData.OwnerID = fromAgentID; reply.ChatData.OwnerID = fromAgentID;
reply.ChatData.SourceID = fromAgentID; reply.ChatData.SourceID = fromAgentID;
OutPacket(reply); OutPacket(reply, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -274,7 +274,7 @@ namespace OpenSim.Region.ClientStack
msg.MessageBlock.Message = encUTF8.GetBytes(message + "\0"); msg.MessageBlock.Message = encUTF8.GetBytes(message + "\0");
msg.MessageBlock.BinaryBucket = new byte[0]; msg.MessageBlock.BinaryBucket = new byte[0];
OutPacket(msg); OutPacket(msg, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -297,7 +297,7 @@ namespace OpenSim.Region.ClientStack
patches[3] = x + 3 + y*16; patches[3] = x + 3 + y*16;
Packet layerpack = TerrainManager.CreateLandPacket(map, patches); Packet layerpack = TerrainManager.CreateLandPacket(map, patches);
OutPacket(layerpack); OutPacket(layerpack, ThrottleOutPacketType.Land);
} }
} }
} }
@ -326,7 +326,7 @@ namespace OpenSim.Region.ClientStack
patches[0] = patchx + 0 + patchy*16; patches[0] = patchx + 0 + patchy*16;
Packet layerpack = TerrainManager.CreateLandPacket(map, patches); Packet layerpack = TerrainManager.CreateLandPacket(map, patches);
OutPacket(layerpack); OutPacket(layerpack, ThrottleOutPacketType.Land);
} }
catch (Exception e) catch (Exception e)
{ {
@ -356,7 +356,7 @@ namespace OpenSim.Region.ClientStack
enablesimpacket.SimulatorInfo.IP += (uint) byteIP[1] << 8; enablesimpacket.SimulatorInfo.IP += (uint) byteIP[1] << 8;
enablesimpacket.SimulatorInfo.IP += (uint) byteIP[0]; enablesimpacket.SimulatorInfo.IP += (uint) byteIP[0];
enablesimpacket.SimulatorInfo.Port = neighbourPort; enablesimpacket.SimulatorInfo.Port = neighbourPort;
OutPacket(enablesimpacket); OutPacket(enablesimpacket, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -401,7 +401,7 @@ namespace OpenSim.Region.ClientStack
//newSimPack.RegionData.SeedCapability = new byte[0]; //newSimPack.RegionData.SeedCapability = new byte[0];
newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL); newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL);
OutPacket(newSimPack); OutPacket(newSimPack, ThrottleOutPacketType.Task);
} }
public void SendMapBlock(List<MapBlockData> mapBlocks) public void SendMapBlock(List<MapBlockData> mapBlocks)
@ -423,7 +423,7 @@ namespace OpenSim.Region.ClientStack
mapReply.Data[i].Access = mapBlocks[i].Access; mapReply.Data[i].Access = mapBlocks[i].Access;
mapReply.Data[i].Agents = mapBlocks[i].Agents; mapReply.Data[i].Agents = mapBlocks[i].Agents;
} }
OutPacket(mapReply); OutPacket(mapReply, ThrottleOutPacketType.Land);
} }
public void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags) public void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags)
@ -434,7 +434,7 @@ namespace OpenSim.Region.ClientStack
tpLocal.Info.LocationID = 2; tpLocal.Info.LocationID = 2;
tpLocal.Info.LookAt = lookAt; tpLocal.Info.LookAt = lookAt;
tpLocal.Info.Position = position; tpLocal.Info.Position = position;
OutPacket(tpLocal); OutPacket(tpLocal, ThrottleOutPacketType.Task);
} }
public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID, public void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint newRegionEndPoint, uint locationID,
@ -459,7 +459,7 @@ namespace OpenSim.Region.ClientStack
teleport.Info.SimPort = (ushort) newRegionEndPoint.Port; teleport.Info.SimPort = (ushort) newRegionEndPoint.Port;
teleport.Info.LocationID = 4; teleport.Info.LocationID = 4;
teleport.Info.TeleportFlags = 1 << 4; teleport.Info.TeleportFlags = 1 << 4;
OutPacket(teleport); OutPacket(teleport, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -471,7 +471,7 @@ namespace OpenSim.Region.ClientStack
tpCancel.Info.SessionID = m_sessionId; tpCancel.Info.SessionID = m_sessionId;
tpCancel.Info.AgentID = AgentId; tpCancel.Info.AgentID = AgentId;
OutPacket(tpCancel); OutPacket(tpCancel, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -481,7 +481,7 @@ namespace OpenSim.Region.ClientStack
{ {
TeleportStartPacket tpStart = new TeleportStartPacket(); TeleportStartPacket tpStart = new TeleportStartPacket();
tpStart.Info.TeleportFlags = 16; // Teleport via location tpStart.Info.TeleportFlags = 16; // Teleport via location
OutPacket(tpStart); OutPacket(tpStart, ThrottleOutPacketType.Task);
} }
public void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance) public void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance)
@ -492,7 +492,7 @@ namespace OpenSim.Region.ClientStack
money.MoneyData.TransactionSuccess = success; money.MoneyData.TransactionSuccess = success;
money.MoneyData.Description = description; money.MoneyData.Description = description;
money.MoneyData.MoneyBalance = balance; money.MoneyData.MoneyBalance = balance;
OutPacket(money); OutPacket(money, ThrottleOutPacketType.Task);
} }
public void SendStartPingCheck(byte seq) public void SendStartPingCheck(byte seq)
@ -500,7 +500,7 @@ namespace OpenSim.Region.ClientStack
StartPingCheckPacket pc = new StartPingCheckPacket(); StartPingCheckPacket pc = new StartPingCheckPacket();
pc.PingID.PingID = seq; pc.PingID.PingID = seq;
pc.Header.Reliable = false; pc.Header.Reliable = false;
OutPacket(pc); OutPacket(pc, ThrottleOutPacketType.Task);
} }
public void SendKillObject(ulong regionHandle, uint localID) public void SendKillObject(ulong regionHandle, uint localID)
@ -509,7 +509,7 @@ namespace OpenSim.Region.ClientStack
kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1];
kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock();
kill.ObjectData[0].ID = localID; kill.ObjectData[0].ID = localID;
OutPacket(kill); OutPacket(kill, ThrottleOutPacketType.Task);
} }
public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items) public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items)
@ -563,7 +563,7 @@ namespace OpenSim.Region.ClientStack
count++; count++;
if (i == 40) if (i == 40)
{ {
OutPacket(descend); OutPacket(descend, ThrottleOutPacketType.Asset);
if ((items.Count - count) > 0) if ((items.Count - count) > 0)
{ {
@ -585,7 +585,7 @@ namespace OpenSim.Region.ClientStack
if (i < 40) if (i < 40)
{ {
OutPacket(descend); OutPacket(descend, ThrottleOutPacketType.Asset);
} }
} }
@ -637,7 +637,7 @@ namespace OpenSim.Region.ClientStack
FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS,
FULL_MASK_PERMISSIONS); FULL_MASK_PERMISSIONS);
OutPacket(inventoryReply); OutPacket(inventoryReply, ThrottleOutPacketType.Asset);
} }
public void SendInventoryItemUpdate(InventoryItemBase Item) public void SendInventoryItemUpdate(InventoryItemBase Item)
@ -677,7 +677,7 @@ namespace OpenSim.Region.ClientStack
FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS, 1, FULL_MASK_PERMISSIONS, FULL_MASK_PERMISSIONS,
FULL_MASK_PERMISSIONS); FULL_MASK_PERMISSIONS);
OutPacket(InventoryReply); OutPacket(InventoryReply, ThrottleOutPacketType.Asset);
} }
public void SendRemoveInventoryItem(LLUUID itemID) public void SendRemoveInventoryItem(LLUUID itemID)
@ -689,7 +689,7 @@ namespace OpenSim.Region.ClientStack
remove.InventoryData[0] = new RemoveInventoryItemPacket.InventoryDataBlock(); remove.InventoryData[0] = new RemoveInventoryItemPacket.InventoryDataBlock();
remove.InventoryData[0].ItemID = itemID; remove.InventoryData[0].ItemID = itemID;
OutPacket(remove); OutPacket(remove, ThrottleOutPacketType.Asset);
} }
public void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName) public void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName)
@ -698,7 +698,7 @@ namespace OpenSim.Region.ClientStack
replytask.InventoryData.TaskID = taskID; replytask.InventoryData.TaskID = taskID;
replytask.InventoryData.Serial = serial; replytask.InventoryData.Serial = serial;
replytask.InventoryData.Filename = fileName; replytask.InventoryData.Filename = fileName;
OutPacket(replytask); OutPacket(replytask, ThrottleOutPacketType.Asset);
} }
public void SendXferPacket(ulong xferID, uint packet, byte[] data) public void SendXferPacket(ulong xferID, uint packet, byte[] data)
@ -707,11 +707,11 @@ namespace OpenSim.Region.ClientStack
sendXfer.XferID.ID = xferID; sendXfer.XferID.ID = xferID;
sendXfer.XferID.Packet = packet; sendXfer.XferID.Packet = packet;
sendXfer.DataPacket.Data = data; sendXfer.DataPacket.Data = data;
OutPacket(sendXfer); OutPacket(sendXfer, ThrottleOutPacketType.Task);
} }
public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket)
{ {
OutPacket(replyPacket); OutPacket(replyPacket, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -722,7 +722,7 @@ namespace OpenSim.Region.ClientStack
{ {
AlertMessagePacket alertPack = new AlertMessagePacket(); AlertMessagePacket alertPack = new AlertMessagePacket();
alertPack.AlertData.Message = Helpers.StringToField(message); alertPack.AlertData.Message = Helpers.StringToField(message);
OutPacket(alertPack); OutPacket(alertPack, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -736,7 +736,7 @@ namespace OpenSim.Region.ClientStack
alertPack.AgentData.AgentID = AgentId; alertPack.AgentData.AgentID = AgentId;
alertPack.AlertData.Message = Helpers.StringToField(message); alertPack.AlertData.Message = Helpers.StringToField(message);
alertPack.AlertData.Modal = modal; alertPack.AlertData.Modal = modal;
OutPacket(alertPack); OutPacket(alertPack, ThrottleOutPacketType.Task);
} }
public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message,
@ -750,7 +750,7 @@ namespace OpenSim.Region.ClientStack
loadURL.Data.Message = Helpers.StringToField(message); loadURL.Data.Message = Helpers.StringToField(message);
loadURL.Data.URL = Helpers.StringToField(url); loadURL.Data.URL = Helpers.StringToField(url);
OutPacket(loadURL); OutPacket(loadURL, ThrottleOutPacketType.Task);
} }
@ -762,7 +762,7 @@ namespace OpenSim.Region.ClientStack
preSound.DataBlock[0].ObjectID = objectID; preSound.DataBlock[0].ObjectID = objectID;
preSound.DataBlock[0].OwnerID = ownerID; preSound.DataBlock[0].OwnerID = ownerID;
preSound.DataBlock[0].SoundID = soundID; preSound.DataBlock[0].SoundID = soundID;
OutPacket(preSound); OutPacket(preSound, ThrottleOutPacketType.Task);
} }
public void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, byte flags) public void SendPlayAttachedSound(LLUUID soundID, LLUUID objectID, LLUUID ownerID, float gain, byte flags)
@ -774,7 +774,7 @@ namespace OpenSim.Region.ClientStack
sound.DataBlock.Gain = gain; sound.DataBlock.Gain = gain;
sound.DataBlock.Flags = flags; sound.DataBlock.Flags = flags;
OutPacket(sound); OutPacket(sound, ThrottleOutPacketType.Task);
} }
public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel)
@ -783,7 +783,7 @@ namespace OpenSim.Region.ClientStack
viewertime.TimeInfo.SunDirection = sunPos; viewertime.TimeInfo.SunDirection = sunPos;
viewertime.TimeInfo.SunAngVelocity = sunVel; viewertime.TimeInfo.SunAngVelocity = sunVel;
viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch(); viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch();
OutPacket(viewertime); OutPacket(viewertime, ThrottleOutPacketType.Task);
} }
public void SendViewerTime(int phase) public void SendViewerTime(int phase)
@ -836,7 +836,7 @@ namespace OpenSim.Region.ClientStack
} }
viewertime.TimeInfo.SunAngVelocity = new LLVector3(0, 0.0f, 10.0f); viewertime.TimeInfo.SunAngVelocity = new LLVector3(0, 0.0f, 10.0f);
viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch(); viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch();
OutPacket(viewertime); OutPacket(viewertime, ThrottleOutPacketType.Task);
} }
public void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember, public void SendAvatarProperties(LLUUID avatarID, string aboutText, string bornOn, string charterMember,
@ -855,7 +855,7 @@ namespace OpenSim.Region.ClientStack
avatarReply.PropertiesData.ImageID = imageID; avatarReply.PropertiesData.ImageID = imageID;
avatarReply.PropertiesData.ProfileURL = Helpers.StringToField(profileURL); avatarReply.PropertiesData.ProfileURL = Helpers.StringToField(profileURL);
avatarReply.PropertiesData.PartnerID = partnerID; avatarReply.PropertiesData.PartnerID = partnerID;
OutPacket(avatarReply); OutPacket(avatarReply, ThrottleOutPacketType.Task);
} }
#endregion #endregion
@ -884,7 +884,7 @@ namespace OpenSim.Region.ClientStack
aw.WearableData[i] = awb; aw.WearableData[i] = awb;
} }
OutPacket(aw); OutPacket(aw, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -909,7 +909,7 @@ namespace OpenSim.Region.ClientStack
avp.Sender.IsTrial = false; avp.Sender.IsTrial = false;
avp.Sender.ID = agentID; avp.Sender.ID = agentID;
OutPacket(avp); OutPacket(avp, ThrottleOutPacketType.Task);
} }
public void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId) public void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId)
@ -924,7 +924,7 @@ namespace OpenSim.Region.ClientStack
ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock(); ani.AnimationList[0] = new AvatarAnimationPacket.AnimationListBlock();
ani.AnimationList[0].AnimID = animID; ani.AnimationList[0].AnimID = animID;
ani.AnimationList[0].AnimSequenceID = seq; ani.AnimationList[0].AnimSequenceID = seq;
OutPacket(ani); OutPacket(ani, ThrottleOutPacketType.Task);
} }
#endregion #endregion
@ -959,7 +959,7 @@ namespace OpenSim.Region.ClientStack
byte[] pb = pos2.GetBytes(); byte[] pb = pos2.GetBytes();
Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length);
OutPacket(objupdate); OutPacket(objupdate, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -981,7 +981,7 @@ namespace OpenSim.Region.ClientStack
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = terseBlock; terse.ObjectData[0] = terseBlock;
OutPacket(terse); OutPacket(terse, ThrottleOutPacketType.Task);
} }
public void SendCoarseLocationUpdate(List<LLVector3> CoarseLocations) public void SendCoarseLocationUpdate(List<LLVector3> CoarseLocations)
@ -1003,7 +1003,7 @@ namespace OpenSim.Region.ClientStack
ib.You = -1; ib.You = -1;
ib.Prey = -1; ib.Prey = -1;
loc.Index = ib; loc.Index = ib;
OutPacket(loc); OutPacket(loc, ThrottleOutPacketType.Task);
} }
#endregion #endregion
@ -1027,7 +1027,7 @@ namespace OpenSim.Region.ClientStack
attach.ObjectData[0].ObjectLocalID = localID; attach.ObjectData[0].ObjectLocalID = localID;
attach.ObjectData[0].Rotation = rotation; attach.ObjectData[0].Rotation = rotation;
OutPacket(attach); OutPacket(attach, ThrottleOutPacketType.Task);
} }
public void SendPrimitiveToClient( public void SendPrimitiveToClient(
@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ClientStack
byte[] rot = rotation.GetBytes(); byte[] rot = rotation.GetBytes();
Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length); Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length);
OutPacket(outPacket); OutPacket(outPacket, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>
@ -1084,7 +1084,7 @@ namespace OpenSim.Region.ClientStack
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity); terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity);
OutPacket(terse); OutPacket(terse, ThrottleOutPacketType.Task);
} }
public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position,
LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity)
@ -1096,7 +1096,7 @@ namespace OpenSim.Region.ClientStack
terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity); terse.ObjectData[0] = CreatePrimImprovedBlock(localID, position, rotation, velocity, rotationalvelocity);
OutPacket(terse); OutPacket(terse, ThrottleOutPacketType.Task);
} }
@ -1432,7 +1432,7 @@ namespace OpenSim.Region.ClientStack
packet.UUIDNameBlock[0].FirstName = Helpers.StringToField(firstname); packet.UUIDNameBlock[0].FirstName = Helpers.StringToField(firstname);
packet.UUIDNameBlock[0].LastName = Helpers.StringToField(lastname); packet.UUIDNameBlock[0].LastName = Helpers.StringToField(lastname);
OutPacket(packet); OutPacket(packet, ThrottleOutPacketType.Task);
} }
#endregion #endregion

View File

@ -84,7 +84,7 @@ namespace OpenSim.Region.ClientStack
cachedresp.WearableData[i].TextureID = LLUUID.Zero; cachedresp.WearableData[i].TextureID = LLUUID.Zero;
cachedresp.WearableData[i].HostName = new byte[0]; cachedresp.WearableData[i].HostName = new byte[0];
} }
OutPacket(cachedresp); OutPacket(cachedresp, ThrottleOutPacketType.Texture);
return true; return true;
} }
@ -220,7 +220,7 @@ namespace OpenSim.Region.ClientStack
mapReply.LayerData[0].Top = 30000; mapReply.LayerData[0].Top = 30000;
mapReply.LayerData[0].Right = 30000; mapReply.LayerData[0].Right = 30000;
mapReply.LayerData[0].ImageID = new LLUUID("00000000-0000-0000-9999-000000000006"); mapReply.LayerData[0].ImageID = new LLUUID("00000000-0000-0000-9999-000000000006");
OutPacket(mapReply); OutPacket(mapReply, ThrottleOutPacketType.Land);
} }
public void RequestMapBlocks(int minX, int minY, int maxX, int maxY) public void RequestMapBlocks(int minX, int minY, int maxX, int maxY)
@ -250,7 +250,7 @@ namespace OpenSim.Region.ClientStack
mbReply.Data[iii].X = System.Convert.ToUInt16(mp["x"]); mbReply.Data[iii].X = System.Convert.ToUInt16(mp["x"]);
mbReply.Data[iii].Y = System.Convert.ToUInt16(mp["y"]); mbReply.Data[iii].Y = System.Convert.ToUInt16(mp["y"]);
} }
this.OutPacket(mbReply); this.OutPacket(mbReply, ThrottleOutPacketType.Land);
*/ */
} }
} }

View File

@ -197,7 +197,7 @@ namespace OpenSim.Region.ClientStack
StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack; StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack;
CompletePingCheckPacket endPing = new CompletePingCheckPacket(); CompletePingCheckPacket endPing = new CompletePingCheckPacket();
endPing.PingID.PingID = startPing.PingID.PingID; endPing.PingID.PingID = startPing.PingID.PingID;
OutPacket(endPing); OutPacket(endPing, ThrottleOutPacketType.Task);
} }
else else
{ {
@ -208,7 +208,7 @@ namespace OpenSim.Region.ClientStack
} }
} }
public virtual void OutPacket(Packet NewPack) public virtual void OutPacket(Packet NewPack, ThrottleOutPacketType throttlePacketType)
{ {
QueItem item = new QueItem(); QueItem item = new QueItem();
item.Packet = NewPack; item.Packet = NewPack;
@ -228,7 +228,7 @@ namespace OpenSim.Region.ClientStack
ack_it.Packets[0].ID = Pack.Header.Sequence; ack_it.Packets[0].ID = Pack.Header.Sequence;
ack_it.Header.Reliable = false; ack_it.Header.Reliable = false;
OutPacket(ack_it); OutPacket(ack_it, ThrottleOutPacketType.Task);
} }
/* /*
if (Pack.Header.Reliable) if (Pack.Header.Reliable)
@ -255,7 +255,7 @@ namespace OpenSim.Region.ClientStack
(now - packet.TickCount) + "ms have passed"); (now - packet.TickCount) + "ms have passed");
packet.Header.Resent = true; packet.Header.Resent = true;
OutPacket(packet); OutPacket(packet, ThrottleOutPacketType.Resend);
} }
} }
} }
@ -289,7 +289,7 @@ namespace OpenSim.Region.ClientStack
} }
acks.Header.Reliable = false; acks.Header.Reliable = false;
OutPacket(acks); OutPacket(acks, ThrottleOutPacketType.Task);
PendingAcks.Clear(); PendingAcks.Clear();
} }

View File

@ -635,13 +635,13 @@ namespace OpenSim.Region.ClientStack
TeleportStartPacket tpStart = new TeleportStartPacket(); TeleportStartPacket tpStart = new TeleportStartPacket();
tpStart.Info.TeleportFlags = 8; // tp via lm tpStart.Info.TeleportFlags = 8; // tp via lm
OutPacket(tpStart); OutPacket(tpStart, ThrottleOutPacketType.Task);
TeleportProgressPacket tpProgress = new TeleportProgressPacket(); TeleportProgressPacket tpProgress = new TeleportProgressPacket();
tpProgress.Info.Message = (new ASCIIEncoding()).GetBytes("sending_landmark"); tpProgress.Info.Message = (new ASCIIEncoding()).GetBytes("sending_landmark");
tpProgress.Info.TeleportFlags = 8; tpProgress.Info.TeleportFlags = 8;
tpProgress.AgentData.AgentID = tpReq.Info.AgentID; tpProgress.AgentData.AgentID = tpReq.Info.AgentID;
OutPacket(tpProgress); OutPacket(tpProgress, ThrottleOutPacketType.Task);
// Fetch landmark // Fetch landmark
LLUUID lmid = tpReq.Info.LandmarkID; LLUUID lmid = tpReq.Info.LandmarkID;
@ -658,14 +658,14 @@ namespace OpenSim.Region.ClientStack
tpLocal.Info.TeleportFlags = 8; // Teleport via landmark tpLocal.Info.TeleportFlags = 8; // Teleport via landmark
tpLocal.Info.LocationID = 2; tpLocal.Info.LocationID = 2;
tpLocal.Info.Position = lm.Position; tpLocal.Info.Position = lm.Position;
OutPacket(tpLocal); OutPacket(tpLocal, ThrottleOutPacketType.Task);
} }
else else
{ {
TeleportCancelPacket tpCancel = new TeleportCancelPacket(); TeleportCancelPacket tpCancel = new TeleportCancelPacket();
tpCancel.Info.AgentID = tpReq.Info.AgentID; tpCancel.Info.AgentID = tpReq.Info.AgentID;
tpCancel.Info.SessionID = tpReq.Info.SessionID; tpCancel.Info.SessionID = tpReq.Info.SessionID;
OutPacket(tpCancel); OutPacket(tpCancel, ThrottleOutPacketType.Task);
} }
} }
else else
@ -675,7 +675,7 @@ namespace OpenSim.Region.ClientStack
TeleportCancelPacket tpCancel = new TeleportCancelPacket(); TeleportCancelPacket tpCancel = new TeleportCancelPacket();
tpCancel.Info.AgentID = tpReq.Info.AgentID; tpCancel.Info.AgentID = tpReq.Info.AgentID;
tpCancel.Info.SessionID = tpReq.Info.SessionID; tpCancel.Info.SessionID = tpReq.Info.SessionID;
OutPacket(tpCancel); OutPacket(tpCancel, ThrottleOutPacketType.Task);
} }
break; break;
case PacketType.TeleportLocationRequest: case PacketType.TeleportLocationRequest:
@ -693,7 +693,7 @@ namespace OpenSim.Region.ClientStack
TeleportCancelPacket tpCancel = new TeleportCancelPacket(); TeleportCancelPacket tpCancel = new TeleportCancelPacket();
tpCancel.Info.SessionID = tpLocReq.AgentData.SessionID; tpCancel.Info.SessionID = tpLocReq.AgentData.SessionID;
tpCancel.Info.AgentID = tpLocReq.AgentData.AgentID; tpCancel.Info.AgentID = tpLocReq.AgentData.AgentID;
OutPacket(tpCancel); OutPacket(tpCancel, ThrottleOutPacketType.Task);
} }
break; break;
@ -904,7 +904,7 @@ namespace OpenSim.Region.ClientStack
logReply.InventoryData[0] = new LogoutReplyPacket.InventoryDataBlock(); logReply.InventoryData[0] = new LogoutReplyPacket.InventoryDataBlock();
logReply.InventoryData[0].ItemID = LLUUID.Zero; logReply.InventoryData[0].ItemID = LLUUID.Zero;
OutPacket(logReply); OutPacket(logReply, ThrottleOutPacketType.Task);
} }
} }
} }

View File

@ -163,7 +163,7 @@ namespace OpenSim.Region.ClientStack
clientPingTimer.Stop(); clientPingTimer.Stop();
libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket();
OutPacket(disable); OutPacket(disable, ThrottleOutPacketType.Task);
ClientThread.Abort(); ClientThread.Abort();
} }

View File

@ -370,7 +370,7 @@ namespace OpenSim.Region.Environment
regionInfoPacket.RegionInfo.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun; regionInfoPacket.RegionInfo.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun;
regionInfoPacket.RegionInfo.WaterHeight = m_regInfo.EstateSettings.waterHeight; regionInfoPacket.RegionInfo.WaterHeight = m_regInfo.EstateSettings.waterHeight;
remote_client.OutPacket(regionInfoPacket); remote_client.OutPacket(regionInfoPacket, ThrottleOutPacketType.Task);
} }
public void sendRegionHandshake(IClientAPI remoteClient) public void sendRegionHandshake(IClientAPI remoteClient)

View File

@ -191,7 +191,7 @@ namespace OpenSim.Region.Environment.LandManagement
landData.selectedPrims; landData.selectedPrims;
updatePacket.ParcelData.UserLocation = landData.userLocation; updatePacket.ParcelData.UserLocation = landData.userLocation;
updatePacket.ParcelData.UserLookAt = landData.userLookAt; updatePacket.ParcelData.UserLookAt = landData.userLookAt;
remote_client.OutPacket((Packet) updatePacket); remote_client.OutPacket((Packet) updatePacket, ThrottleOutPacketType.Task);
} }
public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client) public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client)
@ -534,13 +534,14 @@ namespace OpenSim.Region.Environment.LandManagement
resultLocalIDs.RemoveAt(0); resultLocalIDs.RemoveAt(0);
} }
pack.Data = data; pack.Data = data;
remote_client.OutPacket((Packet) pack); remote_client.OutPacket((Packet) pack, ThrottleOutPacketType.Task);
} }
} }
public void sendLandObjectOwners(IClientAPI remote_client) public void sendLandObjectOwners(IClientAPI remote_client)
{ {
Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>(); Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>();
ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket();
foreach (SceneObjectGroup obj in primsOverMe) foreach (SceneObjectGroup obj in primsOverMe)
{ {
if (!ownersAndCount.ContainsKey(obj.OwnerID)) if (!ownersAndCount.ContainsKey(obj.OwnerID))
@ -570,11 +571,12 @@ namespace OpenSim.Region.Environment.LandManagement
num++; num++;
} }
ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket();
pack.Data = dataBlock; pack.Data = dataBlock;
remote_client.OutPacket(pack);
} }
remote_client.OutPacket(pack, ThrottleOutPacketType.Task);
} }
#endregion #endregion

View File

@ -441,7 +441,7 @@ namespace OpenSim.Region.Environment.LandManagement
packet = new ParcelOverlayPacket(); packet = new ParcelOverlayPacket();
packet.ParcelData.Data = byteArray; packet.ParcelData.Data = byteArray;
packet.ParcelData.SequenceID = sequenceID; packet.ParcelData.SequenceID = sequenceID;
remote_client.OutPacket((Packet) packet); remote_client.OutPacket((Packet)packet, ThrottleOutPacketType.Task);
sequenceID++; sequenceID++;
byteArray = new byte[LAND_BLOCKS_PER_PACKET]; byteArray = new byte[LAND_BLOCKS_PER_PACKET];
} }

View File

@ -212,7 +212,7 @@ namespace OpenSim.Region.Environment.Modules
im.ImageID.Size = (uint) m_asset.Data.Length; im.ImageID.Size = (uint) m_asset.Data.Length;
im.ImageData.Data = m_asset.Data; im.ImageData.Data = m_asset.Data;
im.ImageID.Codec = 2; im.ImageID.Codec = 2;
req.RequestUser.OutPacket(im); req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
PacketCounter++; PacketCounter++;
} }
else else
@ -225,7 +225,7 @@ namespace OpenSim.Region.Environment.Modules
im.ImageData.Data = new byte[600]; im.ImageData.Data = new byte[600];
Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600); Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600);
im.ImageID.Codec = 2; im.ImageID.Codec = 2;
req.RequestUser.OutPacket(im); req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
PacketCounter++; PacketCounter++;
} }
} }
@ -239,7 +239,7 @@ namespace OpenSim.Region.Environment.Modules
if (size > 1000) size = 1000; if (size > 1000) size = 1000;
im.ImageData.Data = new byte[size]; im.ImageData.Data = new byte[size];
Array.Copy(m_asset.Data, 600 + (1000*(PacketCounter - 1)), im.ImageData.Data, 0, size); Array.Copy(m_asset.Data, 600 + (1000*(PacketCounter - 1)), im.ImageData.Data, 0, size);
req.RequestUser.OutPacket(im); req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
PacketCounter++; PacketCounter++;
} }
} }

View File

@ -962,7 +962,7 @@ namespace OpenSim.Region.Environment.Scenes
if (presence != null) if (presence != null)
{ {
libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket();
presence.ControllingClient.OutPacket(disable); presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task);
} }
} }
} }

View File

@ -568,7 +568,7 @@ namespace OpenSim.Region.Environment.Scenes
objPropDB.Name = Helpers.StringToField(RootPart.Name); objPropDB.Name = Helpers.StringToField(RootPart.Name);
objPropDB.Description = Helpers.StringToField(RootPart.Description); objPropDB.Description = Helpers.StringToField(RootPart.Description);
objPropFamilyPack.ObjectData = objPropDB; objPropFamilyPack.ObjectData = objPropDB;
remoteClient.OutPacket(objPropFamilyPack); remoteClient.OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task);
} }
public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID)
@ -956,7 +956,7 @@ namespace OpenSim.Region.Environment.Scenes
proper.ObjectData[0].EveryoneMask = m_rootPart.EveryoneMask; proper.ObjectData[0].EveryoneMask = m_rootPart.EveryoneMask;
proper.ObjectData[0].BaseMask = m_rootPart.BaseMask; proper.ObjectData[0].BaseMask = m_rootPart.BaseMask;
client.OutPacket(proper); client.OutPacket(proper, ThrottleOutPacketType.Task);
} }
/// <summary> /// <summary>

View File

@ -641,7 +641,7 @@ namespace OpenSim.Region.Environment.Scenes
avatarSitResponse.SitTransform.SitPosition = offset; avatarSitResponse.SitTransform.SitPosition = offset;
avatarSitResponse.SitTransform.SitRotation = new LLQuaternion(0.0f, 0.0f, 0.0f, 1.0f); avatarSitResponse.SitTransform.SitRotation = new LLQuaternion(0.0f, 0.0f, 0.0f, 1.0f);
remoteClient.OutPacket(avatarSitResponse); remoteClient.OutPacket(avatarSitResponse, ThrottleOutPacketType.Task);
} }
public void HandleAgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset) public void HandleAgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset)

View File

@ -168,7 +168,7 @@ namespace SimpleApp
} }
public virtual void OutPacket(Packet newPack) public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType)
{ {
} }