aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/LindenUDP/OutgoingPacket.cs (unfollow)
Commit message (Collapse)AuthorFilesLines
2011-04-30First stab at cleaning up Caps. Compiles. Untested.Diva Canto1-75/+0
2011-04-20bug fix. Now when an unacked update packet is handled through ↵Dan Lake1-1/+2
ResendPrimUpdates, it is removed from the UnackedPacketCollection.
2011-04-19Requeue unacknowledged entity updates rather than resend then "as is".Dan Lake1-1/+5
Often, by the time the UDPServer realizes that an entity update packet has not been acknowledged, there is a newer update for the same entity already queued up or there is a higher priority update that should be sent first. This patch eliminates 1:1 packet resends for unacked entity update packets. Insteawd, unacked update packets are decomposed into the original entity updates and those updates are placed back into the priority queues based on their new priority but the original update timestamp. This will generally place them at the head of the line to be put back on the wire as a new outgoing packet but prevents the resend queue from filling up with multiple stale updates for the same entity. This new approach takes advantage of the UDP nature of the Linden protocol in that the intent of a reliable update packet is that if it goes unacknowledge, SOMETHING has to happen to get the update to the client. We are simply making sure that we are resending current object state rather than stale object state. Additionally, this patch includes a generalized callback mechanism so that any caller can specify their own method to call when a packet expires without being acknowledged. We use this mechanism to requeue update packets and otherwise use the UDPServer default method of just putting expired packets in the resend queue.
2011-04-18Requeue unacknowledged entity updates rather than resend then "as is".Dan Lake1-1/+5
Often, by the time the UDPServer realizes that an entity update packet has not been acknowledged, there is a newer update for the same entity already queued up or there is a higher priority update that should be sent first. This patch eliminates 1:1 packet resends for unacked entity update packets. Insteawd, unacked update packets are decomposed into the original entity updates and those updates are placed back into the priority queues based on their new priority but the original update timestamp. This will generally place them at the head of the line to be put back on the wire as a new outgoing packet but prevents the resend queue from filling up with multiple stale updates for the same entity. This new approach takes advantage of the UDP nature of the Linden protocol in that the intent of a reliable update packet is that if it goes unacknowledge, SOMETHING has to happen to get the update to the client. We are simply making sure that we are resending current object state rather than stale object state. Additionally, this patch includes a generalized callback mechanism so that any caller can specify their own method to call when a packet expires without being acknowledged. We use this mechanism to requeue update packets and otherwise use the UDPServer default method of just putting expired packets in the resend queue.
2009-12-20Reverted my changes to jhurliman's packet stack since it currently causes ↵CasperW1-3/+1
more problems than it resolves. The stack DOES need a rework particularly with regards to priorities, but this is not it.
2009-11-15- Lower TIME_MS_TOLERANCE to 200ms - Allow m_updateFlag to be reset to 0 in ↵unknown1-1/+3
the event of a terse update being rejected - Re-add a synchronous SendTo for certain types of packets
2009-10-06* Added missing references to prebuild.xml and commented out the LindenUDP ↵John Hurliman1-0/+14
tests until a new test harness is written * Clients are no longer disconnected when a packet handler crashes. We'll see how this works out in practice * Added documentation and cleanup, getting ready for the first public push * Deleted an old LLUDP file
2009-10-06* Continued work on the new LLUDP implementation. Appears to be functioning, ↵John Hurliman1-13/+20
although not everything is reimplemented yet * Replaced logic in ThreadTracker with a call to System.Diagnostics that does the same thing * Added Util.StringToBytes256() and Util.StringToBytes1024() to clamp output at byte[256] and byte[1024], respectively * Fixed formatting for a MySQLAssetData error logging line
2009-06-01Minor: Change OpenSim to OpenSimulator in older copyright headers and ↵Jeff Ames1-1/+1
LICENSE.txt.
2009-05-02Numerous packet improvements.Melanie Thielker1-0/+1
Don't allow packets to be resent before they have actually been sent for the first time. Switch from serializing a packet to get it's length to the LibOMV provided Length property. Fix resend timing. Fix the use of dangling references to Acked packets. Fix the packet handler to play nice with the packet pool. Fix the packet pool. Add data block recycling to the packet pool. Packet pool is now ENABLED by default. Add config option to disable packet and data block reuse. Add ObjectUpdate and ImprovedTerseObjectUpdate to the packets being recycled.
2008-12-17Reapply the packet optimization patch, with changesMelanie Thielker1-0/+2
2008-12-17Revert 7754 and 7755 pending a reworkMelanie Thielker1-3/+0
2008-12-17Marry AckData to LLQueItem, and store packet data and length there forMelanie Thielker1-0/+3
use everywhere. Each packet gets serialized only once now in PacketHandler
2008-09-26* Patch from JHurlimanTeravus Ovares1-0/+1
* Updates to libomv r2243, * Remove lots of unnecessary typecasts * Improves SendWindData() Thanks jhurliman. * Will update OpenSim-libs in 10 minutes..
2008-09-06* This is the fabled LibOMV update with all of the libOMV types from JHurlimanTeravus Ovares1-1/+1
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point. Regular people should let the dust settle. * This has been tested to work with most basic functions. However.. make sure you back up 'everything' before using this. It's that big! * Essentially we're back at square 1 in the testing phase.. so lets identify things that broke.
2008-07-22Refactor the packet scheduling out of ClientView. Add intelligentMelanie Thielker1-1/+3
resending, timeouts, packet discarding. Add notification event for packet discarding. Add priority scheduling for packet queues. Add outgoing duplicate detection facility. Correct packet sequencing. Make provisions for automatic server side throttle adjustments (comes in next installment)
2008-05-02fixed the dos line endingsSean Dague1-42/+42
2008-05-02* Commit 2/3 - Please dont attempt to update to this revision until all 3 ↵Adam Frisby1-43/+43
are in.
2008-03-18Formatting cleanup.Jeff Ames1-27/+26
2007-12-27* Optimized usingslbsa711-9/+9
* shortened references * Removed redundant 'this' * Normalized EOF
2007-12-10saved OpenSim source code from the giant rampaging unterminated copyright ↵Jeff Ames1-2/+2
notice of doom
2007-11-27moved out nested class to it's own fileSean Dague1-11/+14
2007-11-04normalized line endingsJeff Ames1-41/+41
2007-11-03*Moved region loading into its own interface IRegionLoadermingchen1-40/+41
*Added ability to load regioninfo remotely from a webserver from a single file. See share/RegionLoading/HOWTO_REMOTE_REGION_LOADING.txt for more info and an example file.
2007-10-30* Optimized usingslbsa711-4/+1
* Shortened type references * Removed redundant 'this' qualifier
2007-09-17fixing me some line endingsSean Dague1-43/+43
2007-09-10mass update of urls in source code to new websiteSean Dague1-1/+1
2007-08-28Taken the old scripting engine out of Region.Environment and moved it into a ↵MW1-43/+43
separate module: OpenSim.Region.ExtensionsScriptModule (named as such because the purpose of it is to script server extensions, rather than "user scripting" like Tedd's engine.)
2007-08-06... and here's the second part...lbsa711-0/+0
2007-08-06Part 1 of a two-part commit to change caps of 'scripting' dir...lbsa711-0/+0
2007-07-16changed to native line ending encodingSean Dague1-43/+43
2007-07-13* Renamed OpenSim.Region.Enviroment.Scripting to OpenSim.Region.ScriptingAdam Frisby1-1/+1
* Renamed OpenSim.Scripting to OpenSim.Region.Scripting
2007-07-13* Reorganising Java Virtual Machine code into a subfolder for the JVM ↵Adam Frisby1-0/+0
specific parts, leaving the JVMEngine folder specifically for Script/IScript interfaces. * Fixed a compile issue with the Interpreted Scripts API.
2007-07-05* Added Java support back into Sugilite (although it still needs a calling ↵Adam Frisby1-7/+7
host to be added).
2007-07-03* Optimized usings (the 'LL ate my scripts' commit)lbsa711-8/+0
* added some licensing info