Commit Graph

73 Commits (2fc3f61a42c87ac78792fc9ecd477120b5265cde)

Author SHA1 Message Date
Justin Clark-Casey 190bdc8a2e * Remove some mono compiler warnings 2009-08-05 17:33:23 +01:00
Teravus Ovares 64bd9a3354 * Updates libOMV to version 0.7.0
* Uses mantis #3811 as a base (thanks jhuliman) with changes.
* E-mail regarding interface changes sent to the opensim-dev list 
* Archive: https://lists.berlios.de/pipermail/opensim-dev/2009-July/007219.html
2009-07-25 15:49:10 +00:00
Melanie Thielker 3564271c2d Restore the functionality that was removed in r9928. This lets the load
balancer plugin work again. Create a new method, GetClientEP, to retrieve
only the EndPoint for script usage. Marked the purpose of the method
in IClientAPI.cs with a warning. Also restored the corresponding SetClientInfo
functionality.
2009-07-01 15:47:52 +00:00
Jeff Ames 715f2f2798 Update svn properties, add copyright header, formatting cleanup. 2009-06-29 15:40:00 +00:00
Dr Scofield c1976d1200 moving the m_PendingAcksMap.Remove() out of the foreach and clearing
it instead after the foreach as we are going through the whole
m_PendingAcks list anyhow
2009-06-25 11:30:31 +00:00
Dr Scofield aba4b0bd20 have to clear m_PendingAcks not m_PendingAcksMap 2009-06-25 11:30:16 +00:00
Dr Scofield e2db6c07ba hmph: missing '{'/'}', thx to nebadon for reporting it and rob smart
for spotting it!
2009-06-25 10:26:10 +00:00
Dr Scofield 17d37aa60d cosmetic change 2009-06-25 08:01:02 +00:00
Dr Scofield 1b06da0c54 streamlining m_NeedAck logic 2009-06-25 08:00:43 +00:00
Dr Scofield 9f83f124c7 streamling m_PendingAcks logic to get rid of gratuitous List<...>
instantiations and object copies.
2009-06-25 08:00:18 +00:00
Dr Scofield b84834c45b commenting out expensive bits (who in the world even uses SetClientInfo()?) 2009-06-25 07:59:58 +00:00
Dr Scofield e8e0ce5fc6 changing DropSend()'s foreach loop so that it does not copy the
LLQueItem m_NeedAck queue each time.
2009-06-25 07:59:47 +00:00
Dr Scofield fa060a7282 commenting out rather expensive bits of GetClientInfo() --- the only
bit of GetClientInfo that is actually used seems to be userEP as part of the
OSSL osGetAgentIP() script function. Now commented are the parts where
we serialize and copy out the *entire* packet queue of the client
(locking the packet handler in the process).
2009-06-25 07:59:38 +00:00
Dr Scofield 77122d7861 more efficient way of checking for already seen packets:
- uses Environment.TickCount for all timestamps (instead of more
  costly Util.UnixTimeSinceEpoch()
- takes care of Environment.TickCount overflow (which will happens
  after 24.8 days of system uptime)
- avoids instantiating List copies for each check
- gets rid of one lock() invocation
- moves calculation of loop invariant variable out of the loop itself
2009-06-25 07:59:25 +00:00
Jeff Ames 840de6c036 Minor: Change OpenSim to OpenSimulator in older copyright headers and LICENSE.txt. 2009-06-01 06:37:14 +00:00
Adam Frisby 0c639e08ea * Reversing experimental change in previous rev. 2009-05-02 23:00:51 +00:00
Adam Frisby 1027668359 * Experimental: Speeds maximum resend per second from 80 packets to 400. (From maximum 117kbit to 585kbit) 2009-05-02 22:01:47 +00:00
Melanie Thielker 229a4d54ca If a packet pooling blows up, fail gracefully instead of disconnecting
the user
2009-05-02 21:21:20 +00:00
Melanie Thielker 780f34275b Handle resends better 2009-05-02 20:08:26 +00:00
Melanie Thielker 74ce07e971 Move a lock to attempt to cut down packet loss 2009-05-02 14:47:01 +00:00
Melanie Thielker 62bcf0e694 Numerous packet improvements.
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.
2009-05-02 13:16:41 +00:00
Melanie Thielker ac944def3f Fix the issue that stopped the packet pool from working. Add a mechanism
to recycley data blocs within a packet. Recycle the ObjectUpdate* data
blocks. Speeds up loading even more.
This may mean that the packet pool is now viable.
2009-05-02 00:14:04 +00:00
Justin Clarke Casey 36e648a37a * minor: Remove most mono compiler warnings 2009-02-25 20:53:02 +00:00
Mike Mazur bdf95e54a2 A few updates necessary for load balancer.
- handle GetUser request for nonexistent user gracefully
- include throttle levels in ClientInfo
- code to save/restore throttles in client stack
- only update/send updates to active clients
- make animation classes serializable
2009-02-25 00:32:26 +00:00
lbsa71 801da4346a * optimized usings. 2009-02-12 09:53:12 +00:00
Justin Clarke Casey d4d2c19594 * Extend PacketHandlerTest to fire in a packet.
* Can't test result yet since the Client thread handles it with unpredictable timing
2009-01-12 18:45:03 +00:00
Justin Clarke Casey 6e9d5e4ea7 * refactor: move packet handler interface into a separate class 2009-01-12 17:31:30 +00:00
Teravus Ovares e9cef70f89 * Updates the sim stats module. Cleans out some of the rot.
* Adds a prototype web stats module which is disabled by default.  It's functional with one report right now, however, the database structure may change, so I don't recommend enabling this to keep actual stats right now.  I'll let you know when it's safe.
* Adds Prototype for ajaxy web content
* removed a warning or two.
2009-01-03 03:30:03 +00:00
Justin Clarke Casey 899f2a80d7 minor: remove mono compiler warning 2008-12-19 19:50:46 +00:00
Melanie Thielker a9e38bcafc Reapply the packet optimization patch, with changes 2008-12-17 21:00:18 +00:00
Melanie Thielker 2bcf315ea2 Revert 7754 and 7755 pending a rework 2008-12-17 20:34:37 +00:00
Melanie Thielker 5320f0f33c Stop packets that may be resent from being returned to the packet pool.
FWIW
2008-12-17 20:21:48 +00:00
Melanie Thielker 0d3a9b45ae Marry AckData to LLQueItem, and store packet data and length there for
use everywhere. Each packet gets serialized only once now in PacketHandler
2008-12-17 18:56:47 +00:00
Melanie Thielker 35ec496f98 Revamp packet handler to smooth out the stream of resent packets.
Eliminates the bursting in resends observed in the prior implementation
2008-12-17 17:19:14 +00:00
Adam Frisby 7308f35a96 * Fixed issue where incorrect braces nesting resulted in a section of PacketQueue getting disabled.
* This means the recent memory fix should now be working correctly - so the current largest memory leak should be fixed. AssetCache still needs to be addressed however.
2008-11-08 21:08:01 +00:00
Adam Frisby fb2a1a6b7c * Fixed a major memory leak in packet processing - PacketQueue.Close is never called, causing the PacketQueue for dead clients to be preserved (including it's contents).
* This patch is highly experimental and may cause clients to not be able to connect, if this is the case, it will be rolled back in approximately 5 minutes.
2008-11-08 20:52:48 +00:00
Justin Clarke Casey d18aff3310 * restore Header.Resent field setting for resent packets
* without this, the client appears to reset the sequence of packets its expecting
2008-10-06 16:57:58 +00:00
Melanie Thielker a3136d2bb1 Revert the packet resend timing changes. They caused login issues in primmy
regions.
2008-10-05 16:43:58 +00:00
Melanie Thielker c84987426b Craters, take 2. Remove old discard logic and absolute discard timer.
Introduce a resend counter on the ack queue. The header "Resent" field is
now obsolete. Implement 3 resends on reliable packets, variable.
Increase default resend timeout to 3000ms and default silence threshold
to 350ms.
2008-10-05 14:44:26 +00:00
Teravus Ovares a243a4aaf5 * An update to the UDP Packet handler which might make the giant sized craters go away. 2008-10-05 13:06:03 +00:00
Justin Clarke Casey 743e336bf3 * Put in some infrastructure to allow tweaking of packet queue throttle values for the total throttle (the one that throttles all packet output)
* Not complete yet
2008-10-03 18:06:45 +00:00
Justin Clarke Casey 8c55f3eaa6 * minor: remove warnings (the code cleaners strike again) 2008-10-03 14:18:17 +00:00
Justin Clarke Casey 7e35e4c816 * minor: oh, and comment out the now unused logger as well 2008-10-01 20:56:34 +00:00
Justin Clarke Casey 231b8c2a67 * minor: Comment out temporarily statistical counter I accidentally left in from the last commit 2008-10-01 20:55:09 +00:00
Justin Clarke Casey cbb9693ef4 * Try bumping packet resend timeout up to 2 seconds instead of 1
* This actually probably doesn't make a huge difference.  We still end up resending a massive number of packets in quite a few situations, but it's not easy to consistently 
reproduce this.
* Might really need some throttling of packet send to the client on the OpenSim end.
2008-10-01 20:54:28 +00:00
Justin Clarke Casey 95a3d6372d * Fix bug in LLPacketHandler where the tickcount when a packet was approximately sent was not being stored in the ack record
* This meant that acks were being sent out every 250ms when the ack timer fired, rather than when they had actually aged past m_ResendTimeout
2008-10-01 17:18:20 +00:00
Melanie Thielker 1d5b2bb8bc Add some methods to allow modules so set client view options 2008-09-28 19:45:42 +00:00
Melanie Thielker 95c3e0883c Mantis #2288
Correct a typo in namespace declaration
Also adds a new flag to the PacketManager to force retention of packets
marked reliable (default off)
2008-09-28 18:07:06 +00:00
Teravus Ovares 16b6738cda * Patch from JHurliman
* Updates to libomv r2243, 
* Remove lots of unnecessary typecasts
* Improves SendWindData()
Thanks jhurliman. 
* Will update OpenSim-libs in 10 minutes..
2008-09-26 17:25:22 +00:00
Justin Clarke Casey 1a71a3a567 * Fix http://opensimulator.org/mantis/view.php?id=2189
* Allow a grid mode region simulator to properly shutdown even if the grid service is offline
2008-09-21 16:58:14 +00:00