Commit Graph

419 Commits

Author SHA1 Message Date
Jim Radford
12dd05d436 LIBOMV-562 Fixes cast exception being thrown when inventory-skeleton is parsed and item name is an integer
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2830 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-29 07:42:00 +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
Robin Cornelius
a4dd9930dc Fix ChatterBoxSessionAgentListUpdates, the transition member was taken from the wrong part of the OSD Map
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2827 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-28 21:02:20 +00:00
Jim Radford
7fc4df27cb LIBOMV-553 Fix for exception being thrown in TexturePipeline due to event argument being instantiated each time during a foreach loop, Thanks to Dahlia for the bug report!
* Made lockerObject an instance variable

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2826 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-28 00:58:52 +00:00
John Hurliman
7a8938c5fd * Fixed incorrect Length calculations for variable fields and variable blocks
* Don't generate ToBytesMultiple() routines that create corrupted packets. This means no automatic packet splitting for AgentSetAppearance, SimStats, AvatarGroupsReply, and CoarseLocationUpdate packets

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2823 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 22:24:11 +00:00
John Hurliman
250dd512b2 Porting a fix for old tar files in OAR loading from OpenSim
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2822 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 21:40:13 +00:00
John Hurliman
084d2de86a * Added a required lock in the UDP ACK management (thanks lkalif)
* Added Cable Beach OpenSim attributes for wearable items

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2820 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 21:15:14 +00:00
John Hurliman
1955f08a8d Removing unused manual XML-RPC serialization routines from LoginResponseData
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2819 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 19:57:52 +00:00
John Hurliman
447d4db366 Allow appended ACKs to be attached to resent and/or unreliable packets
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2817 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 17:24:28 +00:00
John Hurliman
1ea4221f11 * Moved ACK handling to PacketReceived instead of after the incoming packet queue. This reduces average round trips (on the loopback connection) from ~200ms to ~15ms
* Added a more efficient collection for tracking already received packets

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2816 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 16:54:05 +00:00
Latif Khalifa
09377c682e [Appearance]
* Added support for the new hair bake
* Fixed ForceRebakeAvatarTextures()
* Some additional debug info

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2815 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 09:46:18 +00:00
Jim Radford
90c34d0901 Added several additional decoders to PacketToString class, Some minor cleanups, made default decoder output a string if it can
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2814 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 07:26:12 +00:00
John Hurliman
baaf1fb1f4 * Only append ACKs to outgoing packets if one or more ACKs are successfully dequeued
* Commented out noisy CAPS debugging messages
* Added a test (under packet tests for lack of a better place) to measure Environment.TickCount resolution and fail if the resolution is not consistently under a 10ms variance

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2813 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-27 00:29:43 +00:00
Jim Radford
b49d0736cc LIBOMV-557 Adds sanity check to CoarseLocationHandler to fix IndexOutOfRangeException, Underlying problem is the packet being sent from Simian
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2811 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-26 16:24:00 +00:00
Jim Radford
7ba41deb9a Added several additional decoders to PacketToString class
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2810 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-26 08:50:58 +00:00
Jim Radford
131bf95f45 LIBOMV-512 Adds SpecialDecoder for handling EstateOwner message paramaters
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2809 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-26 04:13:11 +00:00
John Hurliman
2f0aea84b0 * Sanity check for invalid response data during login in libomv and GridClient
* Couple of tiny fixes here and there

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2806 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-25 19:33:20 +00:00
Jim Radford
de8c3131a1 LIBOMV-492 WinGridProxy - Automatically colorize packet details in view
* Log Viewer built into WinGridProxy
* New Decoder system supports the ability to do custom decoding on packet fields, PacketToString moved from Helpers to its own class.
* GridProxy library now uses log4net library to do logging, WinGridProxy logging configuration added to make use of this.
LIBOMV-512 WinGridProxy decodes KeyValue pairs

* Added Invert & Mirror flags to sculptType enum
* Converted SoundManager to use the SoundFlags enum in the AttachedSound callback
* TestClient "who" command now shows agents logal ID

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2805 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-25 19:00:28 +00:00
31cc322c68 Resolves LIBOMV-555: Too thin lock in ObjectManager.GetAvatar/GetPrimitive
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2803 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-24 02:42:07 +00:00
John Hurliman
3015a7a271 Minor cleanup
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2801 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-22 21:47:28 +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
Latif Khalifa
dcb7da5a24 * [LIBOMV-549] Added Packet.ToBytesMultiple() class that will automatically split a packet with variable blocks up into multiple packets that fit in the MTU (1200). Unit test is included. This is not actually being used by the library anywhere (yet), but hopefully it will be soon
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2799 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-22 00:09:22 +00:00
John Hurliman
c82459c323 * Removed the unnecessary overflow check when setting packet sequence number. Interlocked.Increment() handles wrapping for us
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2798 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-21 22:25:25 +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
94f881085a Fixing pending ACK locking problems mentioned in [LIBOMV-551] and [LIBOMV-548]
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2796 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-21 17:44:39 +00:00
Latif Khalifa
f18d1a6472 LIBOMV-550 Allow LLSD serialization of prims that don't have name/description properties
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2795 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-21 17:27:19 +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
032ce35729 Replacing networking stats tracking code with thread-safe calls
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2784 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-19 17:27:43 +00:00
Latif Khalifa
f2399326ce LIBOMV-546 Removing comments that are no longer true
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2783 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-19 09:07:37 +00:00
Latif Khalifa
40c7faf1c2 LIBOMV-546 Fix XML-RPC login on login redirects
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2782 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-19 09:05:34 +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
Jim Radford
a892026414 LIBOMV-544 Adds set accessor to Type property for sculpted prims
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2777 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-17 07:41:13 +00:00
Jim Radford
9f77df039b LIBOMV-544 Corrects implementation of previous commit, Invert and Mirror are now properties of a Sculpted Prim Patch courtesy of Douglas Miles
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2776 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-17 07:33:49 +00:00
Jim Radford
0cf52c5214 LIBOMV-544 Adds Invert and Mirror properties for sculpted prims, Patch courtesy of Douglas Miles
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2775 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-17 02:44:15 +00:00
John Hurliman
2520b6d0ea * Adding a LocklessQueue collection to OpenMetaverseTypes
* Fixing minor compile warnings

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2772 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-16 09:12:12 +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
Jim Radford
fdc6fc6a8d corrects TexturePipeline startup issue under mono which caused the DownloadThread to exit immediately.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2767 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-16 00:40:01 +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
Jim Radford
32a6461fa0 LIBOMV-543 Adds addtional methods, handlers and events for dealing with Classified Ads, Patch courtesy of Daten Thielt
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2762 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-14 19:35:57 +00:00
Jim Radford
f3633d6f1e LIBOMV-540 Adds eventqueue message handler for ScriptRunningReply event message in InventoryManager new event: OnScriptRunning, new callback: ScriptRunningCallback (Untested)
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2760 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-13 23:53:16 +00:00
Jim Radford
10ef80a645 LIBOMV-477 Adds SearchStatRequest capability to message system (two Variants, one for the initial request, and one for the response) *Unit Tests not implemented*
* Some more work on the benchmarks (added an additional tiny test)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2759 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-13 22:37:40 +00:00
Jim Radford
f2dbbb00b6 LIBOMV-540 Adds parameter to CopyScriptToTask method which allows the scripts running state to be set.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2758 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-13 21:27:38 +00:00
Jim Radford
8290681242 LIBOMV-540 Adds check for ScriptRunningReply to the Event Decoder
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2757 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-13 20:37:03 +00:00
Jim Radford
168df79f12 LIBOMV-540 Adds method to InventoryManager to change the request the running status of a script contained in a Task inventory
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2756 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-13 20:35:47 +00:00
Jim Radford
9088bb0f6e LIBOMV-540 Adds method to InventoryManager to change the running state of a script.
* Switches RequestUpdateScriptAgentInventory method to use IMessage system
* Fixes a couple minor typos in InventoryManager

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2751 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-13 17:10:44 +00:00
John Hurliman
4a8079ff2e * Fixing GroupPowers struct. The previous bit-shifting math was created 32-bit values that wrapped around and then converting to 64-bit. Hardcoded integers are used for all of the values now (thank you mcortez)
* Replacing hardcoded paths in OAR archiving with constants

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2750 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-12 23:01:16 +00:00
Jim Radford
90825a5042 LIBOMV-539 Patch from Douglas Miles - Implements example TestClient command to upload a script to inventory + corrects capability name
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2748 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-12 11:58:12 +00:00
John Hurliman
a970cbd661 Initial commit of the OpenMetaverse.Assets namespace. Serialization/deserialization for new PrimObject is done, but OAR saving/loading is still a work in progress
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2746 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-12 00:07:35 +00:00
John Hurliman
0746947075 * Fixing premature commit of BakeLayer
* Adding an alternative implementation of one of the benchmark tests for serialization that should be more fair (untested)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2745 52acb1d6-8a22-11de-b505-999d5b087335
2009-05-11 22:32:37 +00:00