diff --git a/OpenSim/Framework/ClientManager.cs b/OpenSim/Framework/ClientManager.cs index e34c0511eb..629aab5423 100644 --- a/OpenSim/Framework/ClientManager.cs +++ b/OpenSim/Framework/ClientManager.cs @@ -122,7 +122,7 @@ namespace OpenSim.Framework { packet.AgentData.AgentID = client.AgentId; packet.AgentData.SessionID = client.SessionId; - client.OutPacket(packet); + client.OutPacket(packet,ThrottleOutPacketType.Task); } } } diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 99041c1af0..edca142b4d 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs @@ -520,7 +520,7 @@ namespace OpenSim.Framework.Communications.Cache } Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length; Transfer.TransferInfo.TransferID = req.TransferRequestID; - req.RequestUser.OutPacket(Transfer); + req.RequestUser.OutPacket(Transfer,ThrottleOutPacketType.Asset); if (req.NumPackets == 1) { @@ -530,7 +530,7 @@ namespace OpenSim.Framework.Communications.Cache TransferPacket.TransferData.TransferID = req.TransferRequestID; TransferPacket.TransferData.Data = req.AssetInf.Data; TransferPacket.TransferData.Status = 1; - req.RequestUser.OutPacket(TransferPacket); + req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset); } else { @@ -546,7 +546,7 @@ namespace OpenSim.Framework.Communications.Cache Array.Copy(req.AssetInf.Data, chunk, req.AssetInf.Data.Length); TransferPacket.TransferData.Data = chunk; TransferPacket.TransferData.Status = 1; - req.RequestUser.OutPacket(TransferPacket); + req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset); } else { @@ -555,7 +555,7 @@ namespace OpenSim.Framework.Communications.Cache TransferPacket.TransferData.Data = chunk; TransferPacket.TransferData.Status = 0; - req.RequestUser.OutPacket(TransferPacket); + req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset); TransferPacket = new TransferPacketPacket(); TransferPacket.TransferData.Packet = 1; @@ -565,7 +565,7 @@ namespace OpenSim.Framework.Communications.Cache Array.Copy(req.AssetInf.Data, 1000, chunk1, 0, chunk1.Length); TransferPacket.TransferData.Data = chunk1; 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.ImageData.Data = req.ImageInfo.Data; im.ImageID.Codec = 2; - req.RequestUser.OutPacket(im); + req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); req.PacketCounter++; //req.ImageInfo.l= time; //System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID); @@ -758,7 +758,7 @@ namespace OpenSim.Framework.Communications.Cache im.ImageData.Data = new byte[600]; Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600); im.ImageID.Codec = 2; - req.RequestUser.OutPacket(im); + req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); req.PacketCounter++; //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); im.ImageData.Data = new byte[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.ImageInfo.last_used = time; //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 9e9ec05ee5..acd57b6408 100644 --- a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs +++ b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs @@ -221,7 +221,7 @@ namespace OpenSim.Framework.Communications.Cache ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket(); newPack.XferID.ID = xferID; newPack.XferID.Packet = packetID; - ourClient.OutPacket(newPack); + ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset); if ((packetID & 0x80000000) != 0) { SendCompleteMessage(); @@ -262,7 +262,7 @@ namespace OpenSim.Framework.Communications.Cache newPack.XferID.VFileID = Asset.FullID; newPack.XferID.FilePath = 0; newPack.XferID.Filename = new byte[0]; - ourClient.OutPacket(newPack); + ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset); } protected void SendCompleteMessage() @@ -272,7 +272,7 @@ namespace OpenSim.Framework.Communications.Cache newPack.AssetBlock.Type = Asset.Type; newPack.AssetBlock.Success = true; newPack.AssetBlock.UUID = Asset.FullID; - ourClient.OutPacket(newPack); + ourClient.OutPacket(newPack, ThrottleOutPacketType.Asset); m_finished = true; if (m_createItem) { diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 23181bf76e..0e8b82d066 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -54,6 +54,16 @@ namespace OpenSim.Framework StopTyping = 5, Broadcast = 0xFF } ; + public enum ThrottleOutPacketType : int + { + Resend = 0, + Land = 1, + Wind = 2, + Cloud = 3, + Task = 4, + Texture = 5, + Asset = 6 + } /// /// ChatFromViewer Arguments @@ -378,7 +388,7 @@ namespace OpenSim.Framework uint CircuitCode { get; set; } - void OutPacket(Packet newPack); + void OutPacket(Packet newPack, ThrottleOutPacketType packType); void SendWearables(AvatarWearable[] wearables, int serial); void SendAppearance(LLUUID agentID, byte[] visualParams, byte[] textureEntry); void SendStartPingCheck(byte seq); diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs index 4aaa0119c8..9182b5ce8c 100644 --- a/OpenSim/Region/ClientStack/ClientView.API.cs +++ b/OpenSim/Region/ClientStack/ClientView.API.cs @@ -189,7 +189,7 @@ namespace OpenSim.Region.ClientStack handshake.RegionInfo.TerrainDetail3 = regionInfo.EstateSettings.terrainDetail3; handshake.RegionInfo.CacheID = LLUUID.Random(); //I guess this is for the client to remember an old setting? - OutPacket(handshake); + OutPacket(handshake, ThrottleOutPacketType.Task); } /// @@ -214,7 +214,7 @@ namespace OpenSim.Region.ClientStack } mov.Data.LookAt = look; - OutPacket(mov); + OutPacket(mov, ThrottleOutPacketType.Task); } /// @@ -244,7 +244,7 @@ namespace OpenSim.Region.ClientStack reply.ChatData.OwnerID = fromAgentID; reply.ChatData.SourceID = fromAgentID; - OutPacket(reply); + OutPacket(reply, ThrottleOutPacketType.Task); } /// @@ -274,7 +274,7 @@ namespace OpenSim.Region.ClientStack msg.MessageBlock.Message = encUTF8.GetBytes(message + "\0"); msg.MessageBlock.BinaryBucket = new byte[0]; - OutPacket(msg); + OutPacket(msg, ThrottleOutPacketType.Task); } /// @@ -297,7 +297,7 @@ namespace OpenSim.Region.ClientStack patches[3] = x + 3 + y*16; 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; Packet layerpack = TerrainManager.CreateLandPacket(map, patches); - OutPacket(layerpack); + OutPacket(layerpack, ThrottleOutPacketType.Land); } catch (Exception e) { @@ -356,7 +356,7 @@ namespace OpenSim.Region.ClientStack enablesimpacket.SimulatorInfo.IP += (uint) byteIP[1] << 8; enablesimpacket.SimulatorInfo.IP += (uint) byteIP[0]; enablesimpacket.SimulatorInfo.Port = neighbourPort; - OutPacket(enablesimpacket); + OutPacket(enablesimpacket, ThrottleOutPacketType.Task); } /// @@ -401,7 +401,7 @@ namespace OpenSim.Region.ClientStack //newSimPack.RegionData.SeedCapability = new byte[0]; newSimPack.RegionData.SeedCapability = Helpers.StringToField(capsURL); - OutPacket(newSimPack); + OutPacket(newSimPack, ThrottleOutPacketType.Task); } public void SendMapBlock(List mapBlocks) @@ -423,7 +423,7 @@ namespace OpenSim.Region.ClientStack mapReply.Data[i].Access = mapBlocks[i].Access; mapReply.Data[i].Agents = mapBlocks[i].Agents; } - OutPacket(mapReply); + OutPacket(mapReply, ThrottleOutPacketType.Land); } public void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags) @@ -434,7 +434,7 @@ namespace OpenSim.Region.ClientStack tpLocal.Info.LocationID = 2; tpLocal.Info.LookAt = lookAt; tpLocal.Info.Position = position; - OutPacket(tpLocal); + OutPacket(tpLocal, ThrottleOutPacketType.Task); } 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.LocationID = 4; teleport.Info.TeleportFlags = 1 << 4; - OutPacket(teleport); + OutPacket(teleport, ThrottleOutPacketType.Task); } /// @@ -471,7 +471,7 @@ namespace OpenSim.Region.ClientStack tpCancel.Info.SessionID = m_sessionId; tpCancel.Info.AgentID = AgentId; - OutPacket(tpCancel); + OutPacket(tpCancel, ThrottleOutPacketType.Task); } /// @@ -481,7 +481,7 @@ namespace OpenSim.Region.ClientStack { TeleportStartPacket tpStart = new TeleportStartPacket(); tpStart.Info.TeleportFlags = 16; // Teleport via location - OutPacket(tpStart); + OutPacket(tpStart, ThrottleOutPacketType.Task); } 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.Description = description; money.MoneyData.MoneyBalance = balance; - OutPacket(money); + OutPacket(money, ThrottleOutPacketType.Task); } public void SendStartPingCheck(byte seq) @@ -500,7 +500,7 @@ namespace OpenSim.Region.ClientStack StartPingCheckPacket pc = new StartPingCheckPacket(); pc.PingID.PingID = seq; pc.Header.Reliable = false; - OutPacket(pc); + OutPacket(pc, ThrottleOutPacketType.Task); } public void SendKillObject(ulong regionHandle, uint localID) @@ -509,7 +509,7 @@ namespace OpenSim.Region.ClientStack kill.ObjectData = new KillObjectPacket.ObjectDataBlock[1]; kill.ObjectData[0] = new KillObjectPacket.ObjectDataBlock(); kill.ObjectData[0].ID = localID; - OutPacket(kill); + OutPacket(kill, ThrottleOutPacketType.Task); } public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List items) @@ -563,7 +563,7 @@ namespace OpenSim.Region.ClientStack count++; if (i == 40) { - OutPacket(descend); + OutPacket(descend, ThrottleOutPacketType.Asset); if ((items.Count - count) > 0) { @@ -585,7 +585,7 @@ namespace OpenSim.Region.ClientStack 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); - OutPacket(inventoryReply); + OutPacket(inventoryReply, ThrottleOutPacketType.Asset); } 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); - OutPacket(InventoryReply); + OutPacket(InventoryReply, ThrottleOutPacketType.Asset); } public void SendRemoveInventoryItem(LLUUID itemID) @@ -689,7 +689,7 @@ namespace OpenSim.Region.ClientStack remove.InventoryData[0] = new RemoveInventoryItemPacket.InventoryDataBlock(); remove.InventoryData[0].ItemID = itemID; - OutPacket(remove); + OutPacket(remove, ThrottleOutPacketType.Asset); } public void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName) @@ -698,7 +698,7 @@ namespace OpenSim.Region.ClientStack replytask.InventoryData.TaskID = taskID; replytask.InventoryData.Serial = serial; replytask.InventoryData.Filename = fileName; - OutPacket(replytask); + OutPacket(replytask, ThrottleOutPacketType.Asset); } public void SendXferPacket(ulong xferID, uint packet, byte[] data) @@ -707,11 +707,11 @@ namespace OpenSim.Region.ClientStack sendXfer.XferID.ID = xferID; sendXfer.XferID.Packet = packet; sendXfer.DataPacket.Data = data; - OutPacket(sendXfer); + OutPacket(sendXfer, ThrottleOutPacketType.Task); } public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) { - OutPacket(replyPacket); + OutPacket(replyPacket, ThrottleOutPacketType.Task); } /// @@ -722,7 +722,7 @@ namespace OpenSim.Region.ClientStack { AlertMessagePacket alertPack = new AlertMessagePacket(); alertPack.AlertData.Message = Helpers.StringToField(message); - OutPacket(alertPack); + OutPacket(alertPack, ThrottleOutPacketType.Task); } /// @@ -736,7 +736,7 @@ namespace OpenSim.Region.ClientStack alertPack.AgentData.AgentID = AgentId; alertPack.AlertData.Message = Helpers.StringToField(message); alertPack.AlertData.Modal = modal; - OutPacket(alertPack); + OutPacket(alertPack, ThrottleOutPacketType.Task); } 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.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].OwnerID = ownerID; preSound.DataBlock[0].SoundID = soundID; - OutPacket(preSound); + OutPacket(preSound, ThrottleOutPacketType.Task); } 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.Flags = flags; - OutPacket(sound); + OutPacket(sound, ThrottleOutPacketType.Task); } public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) @@ -783,7 +783,7 @@ namespace OpenSim.Region.ClientStack viewertime.TimeInfo.SunDirection = sunPos; viewertime.TimeInfo.SunAngVelocity = sunVel; viewertime.TimeInfo.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch(); - OutPacket(viewertime); + OutPacket(viewertime, ThrottleOutPacketType.Task); } 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.UsecSinceStart = (ulong) Util.UnixTimeSinceEpoch(); - OutPacket(viewertime); + OutPacket(viewertime, ThrottleOutPacketType.Task); } 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.ProfileURL = Helpers.StringToField(profileURL); avatarReply.PropertiesData.PartnerID = partnerID; - OutPacket(avatarReply); + OutPacket(avatarReply, ThrottleOutPacketType.Task); } #endregion @@ -884,7 +884,7 @@ namespace OpenSim.Region.ClientStack aw.WearableData[i] = awb; } - OutPacket(aw); + OutPacket(aw, ThrottleOutPacketType.Task); } /// @@ -909,7 +909,7 @@ namespace OpenSim.Region.ClientStack avp.Sender.IsTrial = false; avp.Sender.ID = agentID; - OutPacket(avp); + OutPacket(avp, ThrottleOutPacketType.Task); } 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].AnimID = animID; ani.AnimationList[0].AnimSequenceID = seq; - OutPacket(ani); + OutPacket(ani, ThrottleOutPacketType.Task); } #endregion @@ -959,7 +959,7 @@ namespace OpenSim.Region.ClientStack byte[] pb = pos2.GetBytes(); Array.Copy(pb, 0, objupdate.ObjectData[0].ObjectData, 16, pb.Length); - OutPacket(objupdate); + OutPacket(objupdate, ThrottleOutPacketType.Task); } /// @@ -981,7 +981,7 @@ namespace OpenSim.Region.ClientStack terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; terse.ObjectData[0] = terseBlock; - OutPacket(terse); + OutPacket(terse, ThrottleOutPacketType.Task); } public void SendCoarseLocationUpdate(List CoarseLocations) @@ -1003,7 +1003,7 @@ namespace OpenSim.Region.ClientStack ib.You = -1; ib.Prey = -1; loc.Index = ib; - OutPacket(loc); + OutPacket(loc, ThrottleOutPacketType.Task); } #endregion @@ -1027,7 +1027,7 @@ namespace OpenSim.Region.ClientStack attach.ObjectData[0].ObjectLocalID = localID; attach.ObjectData[0].Rotation = rotation; - OutPacket(attach); + OutPacket(attach, ThrottleOutPacketType.Task); } public void SendPrimitiveToClient( @@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ClientStack byte[] rot = rotation.GetBytes(); Array.Copy(rot, 0, outPacket.ObjectData[0].ObjectData, 36, rot.Length); - OutPacket(outPacket); + OutPacket(outPacket, ThrottleOutPacketType.Task); } /// @@ -1084,7 +1084,7 @@ namespace OpenSim.Region.ClientStack terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; 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, LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) @@ -1096,7 +1096,7 @@ namespace OpenSim.Region.ClientStack terse.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1]; 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].LastName = Helpers.StringToField(lastname); - OutPacket(packet); + OutPacket(packet, ThrottleOutPacketType.Task); } #endregion diff --git a/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs b/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs index d589a7b742..57530181df 100644 --- a/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs +++ b/OpenSim/Region/ClientStack/ClientView.PacketHandlers.cs @@ -84,7 +84,7 @@ namespace OpenSim.Region.ClientStack cachedresp.WearableData[i].TextureID = LLUUID.Zero; cachedresp.WearableData[i].HostName = new byte[0]; } - OutPacket(cachedresp); + OutPacket(cachedresp, ThrottleOutPacketType.Texture); return true; } @@ -220,7 +220,7 @@ namespace OpenSim.Region.ClientStack mapReply.LayerData[0].Top = 30000; mapReply.LayerData[0].Right = 30000; 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) @@ -250,7 +250,7 @@ namespace OpenSim.Region.ClientStack mbReply.Data[iii].X = System.Convert.ToUInt16(mp["x"]); mbReply.Data[iii].Y = System.Convert.ToUInt16(mp["y"]); } - this.OutPacket(mbReply); + this.OutPacket(mbReply, ThrottleOutPacketType.Land); */ } } diff --git a/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs b/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs index dc7952e01d..179d02acfd 100644 --- a/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs +++ b/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs @@ -197,7 +197,7 @@ namespace OpenSim.Region.ClientStack StartPingCheckPacket startPing = (StartPingCheckPacket) NewPack; CompletePingCheckPacket endPing = new CompletePingCheckPacket(); endPing.PingID.PingID = startPing.PingID.PingID; - OutPacket(endPing); + OutPacket(endPing, ThrottleOutPacketType.Task); } 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(); item.Packet = NewPack; @@ -228,7 +228,7 @@ namespace OpenSim.Region.ClientStack ack_it.Packets[0].ID = Pack.Header.Sequence; ack_it.Header.Reliable = false; - OutPacket(ack_it); + OutPacket(ack_it, ThrottleOutPacketType.Task); } /* if (Pack.Header.Reliable) @@ -255,7 +255,7 @@ namespace OpenSim.Region.ClientStack (now - packet.TickCount) + "ms have passed"); packet.Header.Resent = true; - OutPacket(packet); + OutPacket(packet, ThrottleOutPacketType.Resend); } } } @@ -289,7 +289,7 @@ namespace OpenSim.Region.ClientStack } acks.Header.Reliable = false; - OutPacket(acks); + OutPacket(acks, ThrottleOutPacketType.Task); PendingAcks.Clear(); } diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs index 507bd64265..f62407d0ad 100644 --- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs +++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs @@ -635,13 +635,13 @@ namespace OpenSim.Region.ClientStack TeleportStartPacket tpStart = new TeleportStartPacket(); tpStart.Info.TeleportFlags = 8; // tp via lm - OutPacket(tpStart); + OutPacket(tpStart, ThrottleOutPacketType.Task); TeleportProgressPacket tpProgress = new TeleportProgressPacket(); tpProgress.Info.Message = (new ASCIIEncoding()).GetBytes("sending_landmark"); tpProgress.Info.TeleportFlags = 8; tpProgress.AgentData.AgentID = tpReq.Info.AgentID; - OutPacket(tpProgress); + OutPacket(tpProgress, ThrottleOutPacketType.Task); // Fetch landmark LLUUID lmid = tpReq.Info.LandmarkID; @@ -658,14 +658,14 @@ namespace OpenSim.Region.ClientStack tpLocal.Info.TeleportFlags = 8; // Teleport via landmark tpLocal.Info.LocationID = 2; tpLocal.Info.Position = lm.Position; - OutPacket(tpLocal); + OutPacket(tpLocal, ThrottleOutPacketType.Task); } else { TeleportCancelPacket tpCancel = new TeleportCancelPacket(); tpCancel.Info.AgentID = tpReq.Info.AgentID; tpCancel.Info.SessionID = tpReq.Info.SessionID; - OutPacket(tpCancel); + OutPacket(tpCancel, ThrottleOutPacketType.Task); } } else @@ -675,7 +675,7 @@ namespace OpenSim.Region.ClientStack TeleportCancelPacket tpCancel = new TeleportCancelPacket(); tpCancel.Info.AgentID = tpReq.Info.AgentID; tpCancel.Info.SessionID = tpReq.Info.SessionID; - OutPacket(tpCancel); + OutPacket(tpCancel, ThrottleOutPacketType.Task); } break; case PacketType.TeleportLocationRequest: @@ -693,7 +693,7 @@ namespace OpenSim.Region.ClientStack TeleportCancelPacket tpCancel = new TeleportCancelPacket(); tpCancel.Info.SessionID = tpLocReq.AgentData.SessionID; tpCancel.Info.AgentID = tpLocReq.AgentData.AgentID; - OutPacket(tpCancel); + OutPacket(tpCancel, ThrottleOutPacketType.Task); } break; @@ -904,7 +904,7 @@ namespace OpenSim.Region.ClientStack logReply.InventoryData[0] = new LogoutReplyPacket.InventoryDataBlock(); logReply.InventoryData[0].ItemID = LLUUID.Zero; - OutPacket(logReply); + OutPacket(logReply, ThrottleOutPacketType.Task); } } } diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index 353a24cf60..10f880b717 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs @@ -163,7 +163,7 @@ namespace OpenSim.Region.ClientStack clientPingTimer.Stop(); libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); - OutPacket(disable); + OutPacket(disable, ThrottleOutPacketType.Task); ClientThread.Abort(); } diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs index 9e32b35cc4..c569fc597c 100644 --- a/OpenSim/Region/Environment/EstateManager.cs +++ b/OpenSim/Region/Environment/EstateManager.cs @@ -370,7 +370,7 @@ namespace OpenSim.Region.Environment regionInfoPacket.RegionInfo.UseEstateSun = !m_regInfo.EstateSettings.useFixedSun; regionInfoPacket.RegionInfo.WaterHeight = m_regInfo.EstateSettings.waterHeight; - remote_client.OutPacket(regionInfoPacket); + remote_client.OutPacket(regionInfoPacket, ThrottleOutPacketType.Task); } public void sendRegionHandshake(IClientAPI remoteClient) diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs index bf35b57109..b566387bdd 100644 --- a/OpenSim/Region/Environment/LandManagement/Land.cs +++ b/OpenSim/Region/Environment/LandManagement/Land.cs @@ -191,7 +191,7 @@ namespace OpenSim.Region.Environment.LandManagement landData.selectedPrims; updatePacket.ParcelData.UserLocation = landData.userLocation; 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) @@ -534,13 +534,14 @@ namespace OpenSim.Region.Environment.LandManagement resultLocalIDs.RemoveAt(0); } pack.Data = data; - remote_client.OutPacket((Packet) pack); + remote_client.OutPacket((Packet) pack, ThrottleOutPacketType.Task); } } public void sendLandObjectOwners(IClientAPI remote_client) { Dictionary ownersAndCount = new Dictionary(); + ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket(); foreach (SceneObjectGroup obj in primsOverMe) { if (!ownersAndCount.ContainsKey(obj.OwnerID)) @@ -570,11 +571,12 @@ namespace OpenSim.Region.Environment.LandManagement num++; } - - ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket(); + pack.Data = dataBlock; - remote_client.OutPacket(pack); + + } + remote_client.OutPacket(pack, ThrottleOutPacketType.Task); } #endregion diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs index a1cfa8adbf..dfeb36ac82 100644 --- a/OpenSim/Region/Environment/LandManagement/LandManager.cs +++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs @@ -441,7 +441,7 @@ namespace OpenSim.Region.Environment.LandManagement packet = new ParcelOverlayPacket(); packet.ParcelData.Data = byteArray; packet.ParcelData.SequenceID = sequenceID; - remote_client.OutPacket((Packet) packet); + remote_client.OutPacket((Packet)packet, ThrottleOutPacketType.Task); sequenceID++; byteArray = new byte[LAND_BLOCKS_PER_PACKET]; } diff --git a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs index 87d62315a5..902b669d3a 100644 --- a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs +++ b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs @@ -212,7 +212,7 @@ namespace OpenSim.Region.Environment.Modules im.ImageID.Size = (uint) m_asset.Data.Length; im.ImageData.Data = m_asset.Data; im.ImageID.Codec = 2; - req.RequestUser.OutPacket(im); + req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); PacketCounter++; } else @@ -225,7 +225,7 @@ namespace OpenSim.Region.Environment.Modules im.ImageData.Data = new byte[600]; Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600); im.ImageID.Codec = 2; - req.RequestUser.OutPacket(im); + req.RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); PacketCounter++; } } @@ -239,7 +239,7 @@ namespace OpenSim.Region.Environment.Modules if (size > 1000) size = 1000; im.ImageData.Data = new byte[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++; } } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 87bd0c1a5a..dcba9bda43 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -962,7 +962,7 @@ namespace OpenSim.Region.Environment.Scenes if (presence != null) { libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); - presence.ControllingClient.OutPacket(disable); + presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task); } } } diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 628bd72a21..38962c118b 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs @@ -568,7 +568,7 @@ namespace OpenSim.Region.Environment.Scenes objPropDB.Name = Helpers.StringToField(RootPart.Name); objPropDB.Description = Helpers.StringToField(RootPart.Description); objPropFamilyPack.ObjectData = objPropDB; - remoteClient.OutPacket(objPropFamilyPack); + remoteClient.OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task); } 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].BaseMask = m_rootPart.BaseMask; - client.OutPacket(proper); + client.OutPacket(proper, ThrottleOutPacketType.Task); } /// diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 38523e0c6e..7927de67be 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -641,7 +641,7 @@ namespace OpenSim.Region.Environment.Scenes avatarSitResponse.SitTransform.SitPosition = offset; 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) diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index f78dc8f7c2..f7af2f2f5c 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs @@ -168,7 +168,7 @@ namespace SimpleApp } - public virtual void OutPacket(Packet newPack) + public virtual void OutPacket(Packet newPack, ThrottleOutPacketType packType) { }