Commit Graph

15 Commits

Author SHA1 Message Date
Jim Radford
066b5ae91b LIBOMV-501 Cleaning up some compile time warnings
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2843 52acb1d6-8a22-11de-b505-999d5b087335
2009-06-03 20:42:44 +00:00
Jim Radford
b615d52b67 LIBOMV-573 Handles exception thrown due to mono platform not supporting SIO_UDP_CONNRESET flag
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2835 52acb1d6-8a22-11de-b505-999d5b087335
2009-06-01 06:57:02 +00:00
John Hurliman
d48c7f4431 Attempted fix UDPBase (in server mode) becoming unresponsive when a client forcefully disconnects. The next packet the server sent would receive an ICMP destination unreachable response which causes the next call to BeginReceiveFrom() to throw an exception (see http://support.microsoft.com/kb/263823). This fix sets the SIO_UDP_CONNRESET flag to false as well as running a loop to try and recover the socket (in case the fix doesn't work on Mono)
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2828 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-28 21:05:26 +00:00
John Hurliman
f1e8fd4fe8 Major rewrite of the packet sending code:
* Automatic packet splitting. You can send packets with any number of blocks and the networking layer will split them up automatically
* Less memory is allocated for outgoing packet buffers
* Memory is only allocated for zerocoding (outgoing and incoming) when it is needed
* A lockless queue is used to hold outgoing ACKs
* ACKs are stuffed into packets until they hit the MTU
* All outgoing packets are serialized exactly once, instead of serializing every resend
* Improved the clarity of the networking layer (I will upload a flow chart of packet sending soon)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2800 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-22 19:54:00 +00:00
John Hurliman
0c0e99af4a Removed all thread synchronization from UDPBase. Instead, try/catch blocks are used to handle shutdown
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2797 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-21 19:03:34 +00:00
John Hurliman
44547ead18 Recursive locking fix, should address [TC-67] and part of [LIBOMV-548]
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2793 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-21 16:37:13 +00:00
John Hurliman
5f20603374 * Small performance tweaks to packet classes
* Fixed a recursive locking problem when running UDPBase in server mode

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2788 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-20 19:21:30 +00:00
John Hurliman
14cb071e68 Switched back to async UDP sending, but still not wasting cycles firing PacketSent() callback. We should remove this callback entirely
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2779 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-18 22:27:08 +00:00
John Hurliman
8014afcc3e * Added ReaderWriterLockSlim.cs to OpenMetaverseTypes from the Mono SVN
* Prebuild will now define the VISUAL_STUDIO symbol in .csproj files while leaving NAnt files alone
* A conditional was added to use the .NET ReaderWriterLockSlim for VS compiles and the one in OpenMetaverseTypes for Mono compiles. This is a kludge until everyone is running Mono 2.6 or later (hah)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2769 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-16 01:34:41 +00:00
John Hurliman
b3d686ef38 Upgraded UDPBase to use ReaderWriterLockSlim in non-recursive locking mode. This is mostly an experiment to see if the project will compile under Mono
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2765 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-16 00:23:37 +00:00
John Hurliman
bb97bdcdc7 Fixing [LIBOMV-485] by replacing the GetHashCode() check at login with a randomly generated LoginID value
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2690 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-06 17:41:48 +00:00
John Hurliman
99b3b74cd6 * More cleanup to acking and resending in libomv and Simian
* Fixed typo in Simian.ini that was disabling connection management
* Replaced several unnecessary foreach loops in Simian with dictionary lookups
* Simian now uses the last detected system IP address instead of the first

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2342 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-10 18:00:05 +00:00
John Hurliman
175324af21 * Disabling the object pool while we debug various issues
* Fixing a race condition in PrimWorkshop
* Fixing a race condition in ParcelManager

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2154 52acb1d6-8a22-11de-b505-999d5b087335
2008-08-22 02:39:46 +00:00
John Hurliman
51aa7dbe10 * Removing unused InventoryNode and InventoryNodeDictionary files
* Adding INetworkManager interface, a good starting point for converting all of the manager classes to interfaces
* Changing object pooling for packet buffers from per-sim to a singleton in ObjectPool.cs, should resolve memory leaks for bots that travel the world [LIBOMV-338]
* Removing DetectBotCommand since that detection method does not work
* More work on Matrix4 type

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2034 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-30 19:24:15 +00:00
John Hurliman
c1f3d6a3c2 Renaming libsecondlife folder to OpenMetaverse. Part of a multi-step process, do not check out this revision!
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@1957 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-22 22:56:05 +00:00