diff options
added experimental packet tracker (LLPacketTracker.cs), which can be told to track a packet and if it hasn't been acked within a set time, trigger a IClientAPI event, that the application/scene can handle. Currently only terrain packet tracking is finished, Tracking for initial Prim packets (first full update for a prim) is being worked on. Future improvements would be to make it a more generic packet tracker with callback delegates instead of events.
Add a test event handler (which would fire after a minute if a terrain packet hadn't been acked) to scene to handle the OnUnackedTerrain event, which currently just resends the terrain patch.
The idea of this packet tracking is for the region level application to be able to know if the client stack gave up on sending a packet.
Diffstat (limited to 'OpenSim/Region/Environment/Modules/World')
-rw-r--r-- | OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs index 040b9b7..574bc63 100644 --- a/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/Environment/Modules/World/NPC/NPCAvatar.cs | |||
@@ -296,6 +296,8 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
296 | public event GetScriptRunning OnGetScriptRunning; | 296 | public event GetScriptRunning OnGetScriptRunning; |
297 | public event SetScriptRunning OnSetScriptRunning; | 297 | public event SetScriptRunning OnSetScriptRunning; |
298 | public event UpdateVector OnAutoPilotGo; | 298 | public event UpdateVector OnAutoPilotGo; |
299 | |||
300 | public event TerrainUnacked OnUnackedTerrain; | ||
299 | #pragma warning restore 67 | 301 | #pragma warning restore 67 |
300 | 302 | ||
301 | #endregion | 303 | #endregion |
@@ -438,6 +440,9 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
438 | public virtual void SendLayerData(int px, int py, float[] map) | 440 | public virtual void SendLayerData(int px, int py, float[] map) |
439 | { | 441 | { |
440 | } | 442 | } |
443 | public virtual void SendLayerData(int px, int py, float[] map, bool track) | ||
444 | { | ||
445 | } | ||
441 | 446 | ||
442 | public virtual void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look) | 447 | public virtual void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look) |
443 | { | 448 | { |
@@ -513,7 +518,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
513 | LLVector3 acc, LLQuaternion rotation, LLVector3 rvel, uint flags, | 518 | LLVector3 acc, LLQuaternion rotation, LLVector3 rvel, uint flags, |
514 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, | 519 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, |
515 | uint parentID, | 520 | uint parentID, |
516 | byte[] particleSystem, byte clickAction) | 521 | byte[] particleSystem, byte clickAction, bool track) |
517 | { | 522 | { |
518 | } | 523 | } |
519 | public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, | 524 | public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, |
@@ -522,7 +527,7 @@ namespace OpenSim.Region.Environment.Modules.World.NPC | |||
522 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, | 527 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, |
523 | uint parentID, | 528 | uint parentID, |
524 | byte[] particleSystem, byte clickAction, byte[] textureanimation, | 529 | byte[] particleSystem, byte clickAction, byte[] textureanimation, |
525 | bool attachment, uint AttachmentPoint, LLUUID AssetId, LLUUID SoundId, double SoundVolume, byte SoundFlags, double SoundRadius) | 530 | bool attachment, uint AttachmentPoint, LLUUID AssetId, LLUUID SoundId, double SoundVolume, byte SoundFlags, double SoundRadius, bool track) |
526 | { | 531 | { |
527 | } | 532 | } |
528 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, | 533 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, |