Commit Graph

1788 Commits (e474c19c40a76c3e4099f9933edae9aa13960c39)

Author SHA1 Message Date
Melanie 7f960cd595 Merge branch 'master' into presence-refactor 2010-01-04 21:41:33 +00:00
Jeff Ames 70d5b1c34c Formatting cleanup. Add copyright headers. 2010-01-04 06:17:30 +09:00
Diva Canto 8a9677a531 The Library Service is now working. UserProfileCacheService.LibraryRoot is obsolete. Didn't delete it yet to avoid merge conflicts later -- want to stay out of core as much as possible. 2010-01-01 21:12:46 -08:00
Melanie 004c751a1b Whitespace cleanup (changed hard tabs to 4 spaces) 2009-12-31 21:36:04 +00:00
Revolution 234d4e1105 Adds tons of packets.
Applied with change: Changed spelling to Summary (from Summery)

Signed-off-by: Melanie <melanie@t-data.com>
2009-12-31 21:24:56 +00:00
Melanie bca2afdb3c One should not copy/paste so much :) 2009-12-27 16:08:12 +00:00
Melanie 3ec8e8e40b Fix the spelling :/ 2009-12-27 16:02:31 +00:00
Melanie e063f0d592 Encode the published and mature checkboxes into the user flags for
profiles
2009-12-27 15:47:14 +00:00
Melanie 88b3b98811 Add AvatarInterestsReply 2009-12-26 04:12:51 +00:00
Teravus Ovares (Dan Olivares) f046457249 Tweaking the ModifyLand packet to be async. Advice from Adam 2009-12-13 04:02:18 -05:00
Teravus Ovares (Dan Olivares) 4ef8dc7d96 * Add some glue that allows LocalPacketHandlers to decide if they want the packet to be processed asynchronously or not.
* Make several packets not asynchronous (such as AgentUpdate).    In theory, all fast returning packet handling methods should not be asynchronous.   Ones that wait on an external resource or a long held lock, should be asynchronous.
2009-12-13 02:08:28 -05:00
Melanie f8cc409034 Cause better packing of ObjectProperties 2009-12-06 02:53:24 +00:00
Teravus Ovares (Dan Olivares) d9a20edfb0 * Move code from that last commit to LLClientView since it's a linden client specific limitation, it moves to the Linden Specific client handler. 2009-12-03 02:02:04 -05:00
Teravus Ovares (Dan Olivares) d4073d9bd5 * Fix Inconsistent line ending style in LLUDPClient 2009-12-01 10:19:39 -05:00
Teravus Ovares (Dan Olivares) 4338f4e1d7 * Patch from Misterblue to fix Environment.TickCount for statistics purposes. Resolves the wrap-around of the 32 bit uint.
* Teravus moved the Environment methods to the Util class
2009-11-29 05:06:25 -05:00
Teravus Ovares (Dan Olivares) e7333515d9 Merge branch 'master' of ssh://MyConnection/var/git/opensim 2009-11-27 19:17:54 -05:00
Teravus Ovares (Dan Olivares) 8296413add * Re-enable lightweight packet tracking stats on a 3000 ms interval. 2009-11-27 19:17:36 -05:00
Justin Clark-Casey (justincc) e078fb2e71 Implement god mode user freezing and unfreezing
See http://opensimulator.org/mantis/view.php?id=4356
Thanks Revolution
I performed a subsequent probable bug fix in this patch
2009-11-27 19:23:51 +00:00
Justin Clark-Casey (justincc) 73dcbbd57a minor: remove some mono compiler warnings 2009-11-24 17:32:14 +00:00
Teravus Ovares (Dan Olivares) cf36420d19 * This concludes the packet migrations from the big nasty switch into packet handler delegates. 2009-11-23 22:20:51 -05:00
Teravus Ovares (Dan Olivares) 3bfbd2952d * Moved 60 more packet handlers to Packet Handler Delegates. 2009-11-23 20:19:00 -05:00
Teravus Ovares (Dan Olivares) 976728029b * Moved 40 more Packet handlers to the PacketDelegate and out of the 5000 line switch. 2009-11-23 01:12:46 -05:00
Jeff Ames 9f5c2acd12 Formatting cleanup. 2009-11-23 11:26:06 +09:00
Teravus Ovares (Dan Olivares) 8db97f7dab * Switched over 15 more packet types from the 5000 line switch to the Packet handler delegate 2009-11-22 05:13:50 -05:00
Teravus Ovares (Dan Olivares) 968b7310f4 * Moved 13 more packet type handlers to PacketHandler Delegates.. and out of of that giant 5000 line switch, ProcessInPacket. 2009-11-22 03:48:56 -05:00
Teravus Ovares (Dan Olivares) 2c8fbc15e8 * Comment out some example code for later. 2009-11-21 21:59:31 -05:00
Teravus Ovares (Dan Olivares) 079691b98f * Move a few of the ProcessInPacket switch case blocks into packet handler delegates 2009-11-21 21:58:11 -05:00
Teravus Ovares (Dan Olivares) f7916d10f3 * This fixes landing on Prim and removes the hack from yesterday. Landing on prim should work fine again. 2009-11-21 19:38:38 -05:00
John Hurliman 5145dfa53c * Removing the redundant SendPrimitiveTerseData.State field, it duplicates AttachPoint
* LLClientView.CreateImprovedTerseBlock() now uses AttachPoint and does the proper high-low swap (this should fix disappearing attachment pieces)
2009-11-09 17:13:56 -08:00
Justin Clark-Casey (justincc) 7f5d0a6735 Merge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim 2009-11-09 17:36:28 +00:00
Justin Clark-Casey (justincc) 1afe5a528c minor: remove some mono compiler warnings 2009-11-09 17:09:56 +00:00
Melanie f8bcbe5492 remove the debug stuff 2009-11-08 22:39:00 +00:00
Melanie aff5fe10b0 test commit with debug output per folder fetch. NOT FOR PRODUCTION, SPEWY 2009-11-08 22:29:36 +00:00
John Hurliman 6ed57814c1 * Clamp the CoarseLocationUpdate packet at a maximum of 60 positions per packet. This is a limitation of LLUDP, nothing we can really do about it
* Marking CoarseLocationUpdate as *not* zerocoded. Zerocoding can only save space when a packet contains three or more contiguous zeroes, and will use more space if it contains single zeroes randomly scattered through the packet (which is what you see when you send a long list of UUIDs)
2009-11-05 23:50:17 -08:00
John Hurliman afef1ac191 Changing the AssetBase constructors to avoid initializing assets with an unknown asset type, and log an error if it ever does happen 2009-11-05 13:10:58 -08:00
John Hurliman e6d7303b29 Applying #4332, optional packet statistics logging 2009-11-05 12:01:40 -08:00
Melanie 83b4b4440b Patch by revolution, thank you. Mantis #1789 . Implement friends permissions.
Applied with major changes. Core functionality commented pending review
for possible rights escalation. No user functionality yet.
2009-11-05 02:09:07 +00:00
Melanie 30a2411e58 Separate folder and item limit for UDP inventory packets. Folder limit is
now 6, as before, item limit is 5. This should avoid most, if not
all, oversized packets.
2009-11-04 23:54:19 +00:00
Melanie b6ea7c26ac Refine oversized packet handling as per jhurliman. Reallocate the buffer to
actual packet size only for oversized packets.
2009-11-04 23:12:56 +00:00
Melanie 58be90d2b1 Add some length to the backet buffer for packet sending so oversize
inventory packets don't make us barf
2009-11-04 22:47:40 +00:00
Melanie 535f4597c1 Add an overload to OutPacket as per jhurliman. Switch hacky workaround
for InventoryDescendents to the proper way
2009-11-04 04:36:19 +00:00
Melanie cfcb5faa4e Bounce the pacjet items limit back up to 6 2009-11-04 04:09:46 +00:00
Melanie 5bcc02c97b Prevent autosplitting of inventory descendents packets. Also reduces the
number of items per packet to 5 to prevent asserts
2009-11-04 03:56:31 +00:00
Melanie 4d2ecd1236 Correctly set the totall number of descendents in inventory retrieval 2009-11-04 03:07:21 +00:00
Melanie c72f78215b Backport the fixes to WebFetchInventoryDescendents to the UDP
InventoryDescendents packet. Testing has shown that UDP inventory now
works flawlessly and, unlike CAPS inventory, doesn't download the entire
agent inventory on start. Neither does it incessantly re-request folder
NULL_KEY. Therefore, I have disabled CAPS inventory.
2009-11-04 01:56:19 +00:00
Melanie c6246050d9 Make the default and max RTO configurable int he linden client stack 2009-10-30 22:07:56 +00:00
Melanie 92f4835ba6 Convert the AvatarGroupsReply message to the event queue. 2009-10-30 19:54:56 +00:00
Melanie 39f95e8cf0 Add a using for OSD to the client view 2009-10-30 19:44:01 +00:00
John Hurliman cb1492aaf0 Fixed a regression in SendAvatarGroupsReply() 2009-10-30 13:18:18 -07:00
John Hurliman 5d5d0e699a * Disables automatic packet splitting on AvatarGroupsReply packets. This packet is a mess and shouldn't be used at all (in favor of the event queue message)
* Clean up the way we send AvatarGroupsReply packets, including clamping the group name and group title
2009-10-30 11:12:32 -07:00
John Hurliman 8a73dc0f8a * Fix for a potential race condition in ScenePresence.AbsolutePosition
* Unified the way region handles are stored and used in ScenePresence
* Fixed camera position for child agents
* CheckForSignificantMovement now checks avatar and camera position (both are important for scene prioritization)
* Removing debug code from the previous commit
2009-10-30 03:01:15 -07:00
John Hurliman 7965b6eb61 * Moving parcel media and avatar update packets from the unthrottled category to task
* Fixing a bug where the max burst rate for the state category was being set as unlimited, causing connections to child agents to saturate bandwidth
* Upped the example default drip rates to 1000 bytes/sec, the minimum granularity for the token buckets
2009-10-30 00:43:46 -07:00
John Hurliman a05c67bebb * Fixes issue #4329 "llDialog fails silently" by updating OpenMetaverse.dll
* Prints a warning for any future packet splitting failures
2009-10-30 00:08:41 -07:00
John Hurliman 2913c24c8a * Commented out two noisy debug lines in the LLUDP server
* Misc. cleanup in ScenePresence.HandleAgentUpdate()
2009-10-29 15:24:31 -07:00
John Hurliman 1c9696a9d2 Always send a time dilation of 1.0 while we debug rubberbanding issues 2009-10-28 15:11:01 -07:00
John Hurliman 587c35f6b6 Marking ImprovedTerseObjectUpdate packets for avatars as unthrottled to test 2009-10-28 02:30:16 -07:00
Mikko Pallari 8254256fe9 Modified visibilities of properties and methods. This is so that SL client based clients can use UDP server that is inherited from LLUDPServer. 2009-10-28 00:41:13 -07:00
John Hurliman f89c2cac0f Experimental test to rate limit the incoming packet handler and try to always leave a worker thread available for other tasks 2009-10-27 14:16:01 -07:00
John Hurliman c75d415648 * Converts ClientManager.ForEach() (and as a result, Scene.ForEachClient()) to use a non-blocking parallel method when operating in async mode
* Minor code readability cleanup
2009-10-27 00:26:56 -07:00
John Hurliman b6651ce790 * Double the priority on avatar bake texture requests to get avatars rezzing in faster than the surrounding scene
* Adds duplicate tracking for SceneObjectParts and ScenePresences to avoid sending out duplicate ImprovedTerseObjectUpdate packets
2009-10-26 18:22:32 -07:00
John Hurliman 0b1726b524 Removing the ClientManager reference from IScene and hiding it entirely inside Scene as an implementation detail. This will reduce programming error and make it easier to refactor the avatar vs client vs presence mess later on 2009-10-26 16:48:43 -07:00
John Hurliman 4847e62e9f * Switched all operations on the list of clients that could be either sync or async to use Scene.ForEachClient() instead of referencing ClientManager directly
* Added a new [Startup] config option called use_async_when_possible to signal how to run operations that could be either sync or async
* Changed Scene.ForEachClient to respect use_async_when_possible
* Fixing a potential deadlock in Parallel.ForEach by locking on a temporary object instead of the enumerator (which may be shared across multiple invocations on ForEach). Thank you diva
2009-10-26 16:33:04 -07:00
Dan Lake ad624f703d ParcelObjectOwnersReplyPacket has null DataBlock when a client requests a list of their prims in the region and none exist. Instead of leaving pack.Data null, this patch sets a new DataBlock[0]; 2009-10-26 15:14:13 -07:00
John Hurliman c04775bf68 Changed UseCircuitCode handling to be synchronous or asynchronous depending on the async_packet_handling config option, and added a debug log message when a UseCircuitCode packet is handled 2009-10-26 13:38:07 -07:00
John Hurliman 2222172afa Removed an unnecessary lock in LLUDPClient.UpdateRTO() and LLUDPClient.BackoffRTO() 2009-10-26 11:28:02 -07:00
John Hurliman 730930955a Changing Scene.ForEachClient to use the synchronous for loop instead of Parallel. This is quite possibly the source of some deadlocking, and at the very least the synchronous version gives better stack traces
* Lock the LLUDPClient RTO math * Add a helper function for backing off the RTO, and follow the optional advice in RFC 2988 to clear existing SRTT and RTTVAR values during a backoff

* Removing the unused PrimitiveBaseShape.SculptImage parameter * Improved performance of SceneObjectPart instantiation * ZeroMesher now drops SculptData bytes like Meshmerizer, to allow the texture data to be GCed * Improved typecasting speed in MySQLLegacyRegionData.BuildShape()

* Improved the instantiation of PrimitiveBaseShape
2009-10-25 00:40:21 -07:00
John Hurliman a41cd1d069 * Unregister Mono.Addins event handlers in PluginLoader.Dispose() and always handle PluginLoader with the using pattern. This freed up 121,634,796 bytes on my system
* Avoid allocating an Action<IClientAPI> object every round of the OutgoingPacketHandler
* Removed unnecessary semi-colon endings from OpenSim.ini.example [InterestManagement] section
2009-10-23 13:14:29 -07:00
John Hurliman 4c45b5fd3c Cleaning up OpenSim.ini.example for LLUDP. The [LLClient] section has been removed and several new parameters have been added to [ClientStack.LindenUDP] 2009-10-23 10:35:47 -07:00
John Hurliman 37f7277378 Uncommented the resend log line so the previous commit can be seen in action 2009-10-23 01:33:43 -07:00
John Hurliman ac0acb0296 * Changed the max RTO value to 60 seconds to comply with RFC 2988
* Implemented section 5.5, exponential backoff of the RTO after a resend
2009-10-23 01:33:05 -07:00
John Hurliman 53bf479bab Commented out noisy debugging about resent packets (normal) and agents setting throttles (normal) 2009-10-23 01:11:40 -07:00
John Hurliman 588361e2a2 Experimental change to use an immutable array for iterating ScenePresences, avoiding locking and copying the list each time it is accessed 2009-10-23 01:02:36 -07:00
John Hurliman b2ed348aa2 Implemented a Watchdog class. Do not manually create Thread objects anymore, use Watchdog.StartThread(). While your thread is running call Watchdog.UpdateThread(). When it is shutting down call Watchdog.RemoveThread(). Most of the threads in OpenSim have been updated 2009-10-22 12:33:23 -07:00
Jeff Ames d756fa01ae Add copyright header. Formatting cleanup. 2009-10-22 18:57:24 +09:00
John Hurliman 32ccd5bb40 * Changed the misc. methods calling ThreadPool.UnsafeQueueUserWorkItem() to Util.FireAndForget()
* Changed Util.FireAndForget() to use any of five different methods set with async_call_method in the [Startup] section of OpenSim.ini. Look at the example config for possible values
2009-10-21 23:03:18 -07:00
John Hurliman 6492640e72 * Change the OnQueueEmpty signature to send the flags of the queues that are empty instead of firing once per empty queue
* Change the OnQueueEmpty firing to use a minimum time until next fire instead of a sleep
* Set OutgoingPacket.TickCount = 0 earlier to avoid extra resends when things are running slowly (inside a profiler, for example)
2009-10-21 18:03:41 -07:00
John Hurliman 4e04f6b3a5 * Clarified what FireQueueEmpty is doing with a MIN_CALLBACK_MS constant and upped it to 30ms
* Removed the unused PacketSent() function
* Switched UnackedPacketCollection from a SortedDictionary to a Dictionary now that the sorting is no longer needed. Big performance improvement for ResendUnacked()
2009-10-21 17:02:55 -07:00
John Hurliman b06f258319 * FireQueueEmpty now checks if a measurable amount of time has passed, and if not it sleeps for a small amount of time. This throttles OnQueueEmpty calls where there is no callback or the callback is doing very little work
* Changed HandleQueueEmpty()'s Monitor.TryEnter() calls to locks. We want to take our time in this function and do all the work necessary, since returning too fast will induce a sleep anyways
2009-10-21 16:21:08 -07:00
John Hurliman 2752a3525c * Changed the timing calculations for sending resends/acks/pings from per-client back to per-scene
* Testing a fix from Jim to make the cpu usage fix cleaner
2009-10-21 15:22:23 -07:00
John Hurliman 62f1bfd136 Testing out a hack to identify the source of the high cpu usage 2009-10-21 14:25:22 -07:00
John Hurliman bb4da417ad Removing the Sleep(0) call from the OutgoingPacketHandler 2009-10-21 14:03:49 -07:00
John Hurliman 7ee422a344 * Handle UseCircuitCode packets asynchronously. Adding an agent to a scene can take several seconds, and was blocking up packet handling in the meantime
* Clamp retransmission timeout values between three and 10 seconds
* Log outgoing time for a packet right after it is sent instead of well before
* Loop through the entire UnackedPacketCollection when looking for expired packets
2009-10-21 13:47:16 -07:00
John Hurliman 9178537e94 * Replaced the UnackedPacketCollection with a lockless implementation. The tiny amount of time spent in the locks turned into a lot of time when the rest of the LLUDP implementation went lockless
* Changed the timer tracking numbers for each client to not have "memory". It will no longer queue up calls to functions like ResendUnacked
* Reverted Jim's WaitHandle code. Although it was technically more correct, it exhibited the exact same behavior as the old code but spent more cycles. The 20ms has been replaced with the minimum amount of time before a token bucket could receive a drip, and an else { sleep(0); } was added to make sure the outgoing packet handler always yields at least a minimum amount
2009-10-21 11:59:48 -07:00
John Hurliman c0c845aea4 Fixed the way OnQueueEmpty is called to prevent simultaneous calls for the same category 2009-10-21 01:07:40 -07:00
John Hurliman cde47c2b3d Committing Jim's optimization to replace the 20ms sleep in outgoing packet handling with an interruptible wait handle 2009-10-21 00:18:35 -07:00
John Hurliman 45dc4e0a54 * Added a sanity check to GetScriptAssemblies() and GetScriptStates() for the case where no scripting engine is enabled
* Added TokenBucket.cs to OpenSim, with some fixes for setting a more accurate MaxBurst value and getting a more accurate Content value (by Drip()ing each get)
2009-10-20 18:19:17 -07:00
John Hurliman 1833c69568 * Removed the unused m_agentUpdates collection and some extra work that was being done for AgentUpdate packets
* Start LLUDPClients unpaused (this variable is not being used yet)
2009-10-20 15:19:19 -07:00
John Hurliman d38f33736c * Removed the throttle speed optimizations to see if it brings stability back
* Changed the outgoing packet handler to use a real function instead of a closure and to track time on a per-client basis instead of a global basis
2009-10-20 14:41:20 -07:00
John Hurliman d1ab11dc2a Added try/catches in the outgoing packet handler to match the one in the incoming packet handler 2009-10-20 12:43:09 -07:00
John Hurliman 99abe885c8 Fixing position/rotation/collisionplane in ObjectUpdate packets for avatars 2009-10-20 12:30:34 -07:00
John Hurliman edd393ff30 Reverting the deletion of files related to texture sending until we figure out exactly what is and isn't needed 2009-10-20 11:58:23 -07:00
John Hurliman 9a5e7222ce * Removing cruft left over from the conversion to the new texture sending and UDP code
* Changing the cache modules to only initialize the caches if they are actually enabled. Should save a bit of resources from unused cache systems
2009-10-20 10:33:23 -07:00
John Hurliman 0a6ea33ac8 * Optimized sending of terrain data
* Send terrain data in a spiral pattern instead of a typewriter pattern (placeholder until terrain data becomes part of the interest list management)
* Added a debug line when resent packets are being sent
2009-10-19 18:50:31 -07:00
John Hurliman fdce1be3db * Removed OpenSim.Data.NHibernate
* Replaced calls to ThreadPool.QueueUserWorkItem() with ThreadPool.UnsafeQueueUserWorkItem() since OpenSim does not use Code Access Security sandboxing
2009-10-19 16:52:27 -07:00
John Hurliman 142008121e * Change Util.FireAndForget to use ThreadPool.UnsafeQueueUserWorkItem(). This avoids .NET remoting and a managed->unmanaged->managed jump. Overall, a night and day performance difference
* Initialize the LLClientView prim full update queue to the number of prims in the scene for a big performance boost
* Reordered some comparisons on hot code paths for a minor speed boost
* Removed an unnecessary call to the expensive DateTime.Now function (if you *have* to get the current time as opposed to Environment.TickCount, always use DateTime.UtcNow)
* Don't fire the queue empty callback for the Resend category
* Run the outgoing packet handler thread loop for each client synchronously. It seems like more time was being spent doing the execution asynchronously, and it made deadlocks very difficult to track down
* Rewrote some expensive math in LandObject.cs
* Optimized EntityManager to only lock on operations that need locking, and use TryGetValue() where possible
* Only update the attachment database when an object is attached or detached
* Other small misc. performance improvements
2009-10-19 15:19:09 -07:00
John Hurliman 233e16b99c * Rewrote the methods that build ObjectUpdate and ImprovedTerseObjectUpdate packets to fill in the data more accurately and avoid allocating memory that is immediately thrown away
* Changed the Send*Data structs in IClientAPI to use public readonly members instead of private members and getters
* Made Parallel.ProcessorCount public
* Started switching over packet building methods in LLClientView to use Util.StringToBytes[256/1024]() instead of Utils.StringToBytes()
* More cleanup of the ScenePresences vs. ClientManager nightmare
* ScenePresence.HandleAgentUpdate() will now time out and drop incoming AgentUpdate packets after three seconds. This fixes a deadlock on m_AgentUpdates that was blocking up the LLUDP server
2009-10-18 20:24:20 -07:00
John Hurliman 1dbbf6edb6 * Process the avatar terse update priority queue as soon as an update for our own avatar is ready to send
* Reduce the scope of the locks when processing the update queues
* Reuse the ImprovedTerseObjectUpdate.RegionData block
2009-10-18 03:15:36 -07:00
John Hurliman b4526a5a6d * Big performance increase in loading prims from the region database with MySQL
* Handle the AgentFOV packet
* Bypass queuing and throttles for ping checks to make ping times more closely match network latency
* Only track reliable bytes in LLUDPCLient.BytesSinceLastACK
2009-10-18 02:00:42 -07:00
John Hurliman a3f93cffb4 * Committing Nini.dll with the patch from #3773 applied
* Fixing a log message typo
2009-10-17 22:06:36 -07:00
John Hurliman fdb2a75ad3 Committing the second part of Jim Greensky @ Intel Lab's patch, re-prioritizing updates 2009-10-17 18:01:22 -07:00
John Hurliman e28ac42486 Wrapped the contents of the IncomingPacketHandler loop in a try/catch statement 2009-10-17 17:19:18 -07:00
John Hurliman c81378dc22 Changing avatar movement updates to the Task throttle category until we get finer grained prioritization of avatars vs. prims 2009-10-16 17:33:41 -07:00
John Hurliman 31dfe87570 Prevent oversized packets from crashing the LLUDP server. It will now print a friendly error message and drop the packet 2009-10-16 14:26:58 -07:00
John Hurliman 1bd9202f24 * Simplified the prioritization packet creation code to reduce CPU usage and increase throughput. Apologies to Jim for hacking on your code while it's only halfway done, I'll take responsibility for the manual merge
* Changed LLUDP to use its own MTU value of 1400 instead of the 1200 value pulled from the currently shipped libomv
2009-10-16 14:17:13 -07:00
John Hurliman e776dfb1d7 * Changing the "clean dropped attachments" MySQL command to a using statement inside a try/catch. This statement times out for me very frequently
* More verbose logging when zerocoding fails on an outbound packet
2009-10-16 13:22:45 -07:00
John Hurliman a18489dc9b * Change appearance packets from State to Task. This will hopefully fix the cloud issues
* Changed the throttling logic to obey the requested client bandwidth limit but also share bandwidth between some of the categories to improve throughput on high prim or heavily trafficked regions
2009-10-16 12:20:01 -07:00
John Hurliman 06354a093d Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into prioritization 2009-10-16 10:09:19 -07:00
Melanie 0487092d15 Thank you, Fly man, for plumbing the AvatarInterestsUpdate packet 2009-10-16 13:28:40 +01:00
John Hurliman 4b75353cbf Object update prioritization by Jim Greensky of Intel Labs, part one. This implements a simple distance prioritizer based on initial agent positions. Re-prioritizing and more advanced priority algorithms will follow soon 2009-10-15 16:35:27 -07:00
jjgreens df2d5a460f Replaced the update lists with a priority queue implementation in LLClientView
Replaced the update lists with a priority queue implementation in LLClientView.
The priority queues are based on the MinHeap implementation also included in
this commit within the OpneSim.Framework namespace.  Initially setup to exactly
mimic the behavior beofre the change which was a first come first serve queue.
2009-10-15 15:52:53 -07:00
John Hurliman d44b50ee46 * Removed some of the redundant broadcast functions in Scene and SceneGraph so it is clear who/what the broadcast is going to each time
* Removed two redundant parameters from SceneObjectPart
* Changed some code in terse update sending that was meant to work with references to work with value types (since Vector3 and Quaternion are structs)
* Committing a preview of a new method for sending object updates efficiently (all commented out for now)
2009-10-15 15:25:02 -07:00
Teravus Ovares (Dan Olivares) 6d3d985511 * Request from lkalif to have the Sim send a coarselocationupdate for each avatar in the sim, including yourself.
* Apparently the LLClientView should have been doing this previously..      Also fixed the 'You' on the index block..   so the client doesn't display an extra green dot.
* Thanks lkalif for bringing it to our attention.
2009-10-15 02:01:29 -04:00
John Hurliman 06990b074c Allow the LLUDP server to run in either synchronous or asynchronous mode with a config setting, defaulting to synchronous mode 2009-10-14 16:48:27 -07:00
John Hurliman 82012ec4e3 * Clean up the SetThrottle() code and add a maxBurstRate parameter to allow more tweaking in the future 2009-10-14 16:21:48 -07:00
John Hurliman 1e9e9df0b3 * Switched to a plain lock for the ClientManager collections and protected the TryGetValues with try/catch instead of a lock
* Added ClientManager.ForEachSync() for operations that need to run synchronously, such as "show connections"
2009-10-14 14:25:58 -07:00
John Hurliman c033477d2f * Read scene_throttle_bps from the config file and use it
* Minor formatting cleanup
2009-10-14 11:52:48 -07:00
John Hurliman 4b5a2f8c02 Merge branch 'htb-throttle' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-14 11:44:17 -07:00
John Hurliman 0d2e6463d7 * Minimized the number of times textures are pulled off the priority queue
* OnQueueEmpty is still called async, but will not be called for a given category if the previous callback for that category is still running. This is the most balanced behavior I could find, and seems to work well
* Added support for the old [ClientStack.LindenUDP] settings (including setting the receive buffer size) and added the new token bucket and global throttle settings
* Added the AssetLoaderEnabled config variable to optionally disable loading assets from XML every startup. This gives a dramatic improvement in startup times for those who don't need the functionality every startup
2009-10-14 11:43:31 -07:00
Melanie d83ace0d3b Merge branch 'master' into htb-throttle 2009-10-14 05:10:43 +01:00
John Hurliman 4135b0c4dc * Split Task category into Task and State
* Crude prioritization hack
2009-10-13 19:45:38 -07:00
John Hurliman e8c1e69a0d * Copied LocklessQueue.cs into OpenSim.Framework and added the .Count property and .Clear() method
* Changed the way the QueueEmpty callback is fired. It will be fired asynchronously as soon as an empty queue is detected (this can happen immediately following a dequeue), and will not be fired again until at least one packet is dequeued from that queue. This will give callbacks advanced notice of an empty queue and prevent callbacks from stacking up while the queue is empty
* Added LLUDPClient.IsConnected checks in several places to prevent unwanted network activity after a client disconnects
* Prevent LLClientView.Close() from being called twice every disconnect
* Removed the packet resend limit and improved the client timeout check
2009-10-13 18:56:54 -07:00
John Hurliman dc11643c00 * Consolidated adding / removing ClientManager IClientAPIs to two places in Scene
* Added some missing implementations of IClientAPI.RemoteEndPoint
* Added a ClientManager.Remove(UUID) overload
* Removed a reference to a missing project from prebuild.xml
2009-10-13 17:33:45 -07:00
John Hurliman 395a8680c3 * Fixed a bug where clients were being added to ClientManager twice
* Changed the ClientManager interface to reduce potential errors with duplicate or mismatched keys
* Added IClientAPI.RemoteEndPoint, which can (hopefully) eventually replace IClientAPI.CircuitCode
* Changed the order of operations during client shutdown
2009-10-13 16:53:19 -07:00
John Hurliman 23a334b9f5 * Rewrote ClientManager to remove Lindenisms from OpenSim core, improve performance by removing locks, and replace LLUDPClientCollection
* Removed the confusing (and LL-specific) shutdowncircuit parameter from IClientAPI.Close()
* Updated the LLUDP code to only use ClientManager instead of trying to synchronize ClientManager and m_clients
* Remove clients asynchronously since it is a very slow operation (including a 2000ms sleep)
2009-10-13 14:50:03 -07:00
John Hurliman c893761319 * Unregister event handlers in LLUDPServer when a client logs out and disconnects
* Move ViewerEffect handling to Scene.PacketHandlers
* Removing the unused CloseAllAgents function
* Trimming ClientManager down. This class needs to be reworked to keep LLUDP circuit codes from intruding into the abstract OpenSim core code
2009-10-13 12:50:59 -07:00
John Hurliman f55b282078 Avoid checking m_clients collection twice when a UseCircuitCode packet is received 2009-10-13 11:28:08 -07:00
John Hurliman 82ace481c9 * Broke the circular reference between LLClientView and LLUDPClient. This should speed up garbage collection on the large LLClientView objects, and also prevents handling packets for disconnected clients
* Renamed local LLUDPClient variables to udpClient to avoid naming confusion between LLUDPClient and LLClientView
2009-10-13 11:14:45 -07:00
John Hurliman 3828b3c0e8 * Eliminated unnecessary parameters from LLUDPServer.SendPacketData()
* Changed PrimMesher's Quat.Identity to return <0,0,0,1> instead of <0,0,0,1.1>
2009-10-13 10:38:35 -07:00
Diva Canto e3d5beebfb Better handling of missing assets. 2009-10-13 06:39:11 -07:00
Diva Canto f3d2192cd4 Better handling of missing assets. 2009-10-12 18:30:06 -07:00
Diva Canto 63ed605eba Stop the recurring texture requests for textures that truly don't exist. 2009-10-12 17:36:13 -07:00
Diva Canto c0beeb929e * Fixes http://opensimulator.org/mantis/view.php?id=4225
* Fixes http://opensimulator.org/mantis/view.php?id=3959
* Allows for viewing inventory textures outside home grid
2009-10-12 17:00:01 -07:00
Diva Canto 36dcfd2b80 * Changed logic of enabling LLProxyLoginModule to follow the new style -- true/false on the name, rather than gridmode=true.
* Better error messages on Add/Remove clients.
2009-10-11 10:23:16 -07:00
Diva Canto 3f78ff6ee0 Slight variation on the locking scheme: now locking always, except the ForEach, which gets a copy of the Array. I think the ForEach was the big gorilla. 2009-10-09 19:16:03 -07:00
John Hurliman 29543514e6 * Changed the "Packet exceeded buffer size" log line to debug and include the packet type. This message is normal, but could be evidence of a message marked for zerocoding that probably shouldn't be
* Changing OpenSimUDPBase back to high concurrency. High concurrency mode seems to make other problems happen faster, so it's helpful for working out other bugs and will probably
2009-10-09 16:33:50 -07:00
Diva Canto c8cc14a98b This is to *try* to avoid the exception we are seeing repeatedly:
#13:53:03 - [LLUDPSERVER]: Packet exceeded buffer size during zerocoding. Removing MSG_ZEROCODED flag
#13:53:03 - [Scene]: Failed with exception System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
#  at System.Buffer.BlockCopy (System.Array src, Int32 srcOffset, System.Array dst, Int32 dstOffset, Int32 count) [0x000b7] in /home/grid/install/mono24/mono-2.4.2.3/mcs/class/corlib/System/Buffer.cs:116
#  at OpenSim.Region.ClientStack.LindenUDP.LLUDPServer.SendPacketData (OpenSim.Region.ClientStack.LindenUDP.LLUDPClient client, System.Byte[] data, Int32 dataLength, PacketType type, Boolean doZerocode, ThrottleOutPacketType category) [0x00060] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs:290
#  at OpenSim.Region.ClientStack.LindenUDP.LLUDPServer.SendPacket (OpenSim.Region.ClientStack.LindenUDP.LLUDPClient client, OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType category, Boolean allowSplitting) [0x00077] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs:265
#  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.OutPacket (OpenMetaverse.Packets.Packet packet, ThrottleOutPacketType throttlePacketType) [0x00000] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs:5244
#  at OpenSim.Region.ClientStack.LindenUDP.LLClientView.SendCoarseLocationUpdate (System.Collections.Generic.List`1 users, System.Collections.Generic.List`1 CoarseLocations) [0x0012a] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs:3424
#  at OpenSim.Region.Framework.Scenes.ScenePresence.SendCoarseLocationsDefault (UUID sceneId, OpenSim.Region.Framework.Scenes.ScenePresence p) [0x000fa] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2536
#  at OpenSim.Region.Framework.Scenes.ScenePresence.SendCoarseLocations () [0x0000d] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2491
#  at OpenSim.Region.Framework.Scenes.ScenePresence.Update () [0x00011] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/ScenePresence.cs:2404
#  at OpenSim.Region.Framework.Scenes.SceneGraph.UpdateEntities () [0x0001b] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/SceneGraph.cs:164
#  at OpenSim.Region.Framework.Scenes.Scene.Update () [0x000dc] in /home/grid/PLAZA/wrightplaza/opensim/OpenSim/Region/Framework/Scenes/Scene.cs:1031  On Region: Wright Plaza
2009-10-09 14:25:01 -07:00
Diva Canto 8231cb2231 Putting this to exactly what it was yesterday around this time, so we can do the 100-ppl load test in WP. We need to carefully play with this code in order to understand all the problems. 2009-10-09 11:32:53 -07:00
Melanie 23586b69a1 Slow down the packet receiving code again after new reports of thread storms. 2009-10-09 12:17:55 +01:00
John Hurliman 76a5cae0b4 Forgot to initialize m_writeLock 2009-10-09 02:18:25 -07:00
John Hurliman a3e31cdeaf Added more debugging output to the "unrecognized source" warning 2009-10-09 02:13:21 -07:00
John Hurliman a5b9971fd7 * Added a lock object for the write functions in LLUDPClientCollection (immutable != concurrent write safety)
* Allow the UDP server to bind to a user-specified port again
* Updated to a newer version of OpenSimUDPBase that streamlines the code even more. This also reintroduces the highly concurrent packet handling which needs more testing
2009-10-09 01:53:06 -07:00
John Hurliman 56a27c37d3 Simplified LLUDPClientCollection from three collections down to one. This will prevent any potential problems from inconsistency between the internal collections 2009-10-08 21:51:53 -07:00
John Hurliman 3a04d706c9 Fear the lockless LLUDP implementation! 2009-10-08 17:34:51 -07:00
Diva Canto 51ea39199b Putting the lock back in TryGetValue. 2009-10-08 15:42:08 -07:00
Melanie a0dd9f4bb4 Fork UDPBase from libOMV into opensim 2009-10-08 22:25:14 +01:00
Diva Canto fc41f2e461 Added guards against the exception reported:
#2009-10-08 12:58:34,462 ERROR - OpenSim.Application [APPLICATION]:
#APPLICATION EXCEPTION DETECTED: System.UnhandledExceptionEventArgs
#
#Exception: System.Exception: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object.
#   at OpenSim.Region.ClientStack.LindenUDP.J2KImage.SendFirstPacket(LLClientView client) in c:\Opensim\OpenSim\Region\ClientStack\LindenUDP\J2KImage.cs:line 230
#   at OpenSim.Region.ClientStack.LindenUDP.J2KImage.SendPackets(LLClientView client, Int32 maxpack) in c:\Opensim\OpenSim\Region\ClientStack\LindenUDP\J2KImage.cs:line 84
2009-10-08 07:55:06 -07:00
Diva Canto 68961ec092 One last attempt at tunning the locking/no locking behaviour. The previous one was too lax and made the important login packets fail. 2009-10-07 20:36:24 -07:00
Diva Canto dd80380df5 Another go at the deadlock: not locking TryGetValue, and just catch/ignore exceptions. 2009-10-07 19:45:57 -07:00
Diva Canto c71b3e730d Changed the locking mechanism, because the existing one is causing deadlocks to occur. 2009-10-07 18:54:08 -07:00
Melanie d33b6fef2b replace LLClientView with proper version 2009-10-07 04:37:12 +01:00
Melanie adc208e568 Replace LLClientView on the branch with master. UNCOMPILABLE! 2009-10-07 04:36:36 +01:00
Melanie 9618c196c2 Revert "Merging in diva's locking fixes"
This reverts commit 832cc68513.
2009-10-07 01:44:36 +01:00
John Hurliman 312438f145 Commented noisy debugging about packet splitting 2009-10-06 15:55:39 -07:00
John Hurliman 832cc68513 Merging in diva's locking fixes 2009-10-06 15:54:00 -07:00
Diva Canto e992ca0255 Rewrote parts of the code that were double-locking different objects. This is about half of the code base reviewed. 2009-10-06 15:39:53 -07:00
John Hurliman 9cb5db3621 Applying the real fix (thank you for tracking that MSDN doc down Melanie) 2009-10-06 15:08:09 -07:00
John Hurliman 74fe284a20 Trying Melanie's fix 2009-10-06 14:50:46 -07:00
John Hurliman 25676ac5cf * Added a sanity check for Mono before trying to enumerate over an empty SortedDictionary
* Changed the order of a log line from DotNetEngine so you can tell whether or not it is actually loading
2009-10-06 13:39:10 -07:00
John Hurliman 61b5372153 * Added missing references to prebuild.xml and commented out the LindenUDP 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 12:13:16 -07:00
John Hurliman fb19d1ca0a * Try/catch around EndInvoke() when Util.FireAndForget() returns to catch exceptions thrown in the async method
* Added packet stats handling to the new LLUDP implementation
* Attempting to avoid a race condition when creating a new LLUDPClient
2009-10-06 10:12:59 -07:00
John Hurliman e7c877407f * Continued work on the new LLUDP implementation. Appears to be functioning, 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-10-06 02:38:00 -07:00
John Hurliman 7ddb6fbced Merge branch 'master' of ssh://opensimulator.org/var/git/opensim into htb-throttle 2009-10-05 17:38:27 -07:00
John Hurliman 429a84f390 Beginning work on the new LLUDP implementation 2009-10-05 17:38:14 -07:00
Diva Canto 05c1ec7faf Changed the lock object, to see if this helps at all. Also switched the order of lock and try/catch in RemoveImageFromQueue. 2009-10-05 11:01:45 -07:00
Diva Canto 5b19d5a7b7 Reduced locking. 2009-10-04 14:05:58 -07:00
Diva Canto d93e0a0503 Guarding a line that is sometimes throwing a null pointer exception. 2009-10-04 10:30:21 -07:00
Diva Canto 366bfe17ae Trying to avoid the null pointer exception in J2KImage, RunUpdate. 2009-10-04 07:41:10 -07:00
Melanie 6878b26b0d Merge branch 'diva-textures-osgrid' 2009-10-04 05:49:16 +01:00
John Hurliman 387e9f7a7f * Creates Util.UTF8 and switches some references of Encoding.UTF8 to Util.UTF8 (not all references were switched since not all OpenSim libraries reference OpenSim.Framework)
* Shrinks the largest in-memory object, the LLRAW.HeightmapLookupValue struct (only used for exporting to LLRAW terrain files), to the minimum possible size. This seems to have the odd side effect of cutting the size of the two double[256,256] terrain objects in half. Possibly an alignment optimization?
2009-10-02 18:31:08 -07:00
John Hurliman 332d3eb1bb * Removed code that is no longer used with Melanie's queue callback optimization
* Moved all priority queue access to helper functions to improve reliability and readability
* New version of CSJ2K.dll (from libomv source tree) that fixes a JPEG2000 comment decoding bug
2009-10-02 16:53:35 -07:00
Melanie 36c8d55827 Merge branch 'diva-textures-osgrid' 2009-10-03 00:03:09 +01:00
Melanie 73fa409318 Merge branch 'diva-textures-osgrid' 2009-10-02 23:25:17 +01:00
John Hurliman bdc1345501 * Removed even more unnecessary state variables from J2KImage
* Fixed the incorrect "out of memory?" exception messages and replaced them with useful information
* Cleaned up J2KImage and LLImageManager to conform to coding conventions
2009-10-02 13:08:15 -07:00
John Hurliman 9b342d3e0d * Changed the flush logic to drop packets in non-transactional streams, and to not fire any "put more data in the queues" callbacks
* Minor tweaks to code formatting to make the callback chain for packet queuing easier to follow
2009-10-02 12:00:42 -07:00
Melanie 6def897556 Merge branch 'diva-textures-osgrid' into diva-textures 2009-10-02 19:02:38 +01:00
Melanie 31d8cec0f8 Merge branch 'master' into diva-textures 2009-10-02 08:23:38 +01:00
Melanie 3ba36bb4d8 Restore the missing image handling to the image manager. The missing
image packet crashes Hippo without a message.
2009-10-02 05:49:27 +01:00
Melanie 9a429610e2 Merge branch 'diva-textures-osgrid' into texturetest 2009-10-02 04:19:22 +01:00
Diva Canto 746dad7b74 Locking the priority queue to see if it gets pass that exception. 2009-10-01 20:32:22 -07:00
Melanie 18a744cac1 Change texture sending to be driven by the queue empty event from the
packet queue, rather than a timer
2009-10-02 04:04:14 +01:00
John Hurliman 54ff84050f Removing console debug spew 2009-10-01 18:12:13 -07:00
John Hurliman aaf8fbcef9 Merge branch 'diva-textures-osgrid' of ssh://opensimulator.org/var/git/opensim into diva-textures-osgrid 2009-10-01 17:53:28 -07:00
John Hurliman 6e0c79b8fe * Rewrote LLImageManager to use a real priority queue and hold minimal state
* Rewrote the logic in J2KImage.RunUpdate()
* Added a default avatar texture (I made it myself)
2009-10-01 17:42:13 -07:00
Melanie 54a912bb9c Add a method to determine the count of packets in a throttle 2009-10-01 22:35:57 +01:00
Melanie 5e9da4daab Add OnQueueEmpty event to the packet layers. No user functinality yet 2009-10-01 21:08:17 +01:00
James J Greensky 44776fea72 Fixing LLClientView memory leak
Fixing LLClientView memory leak by disposing of all timers utilized
in LLClientView as they contain references to the callback method.
This required the use of the Terminate and Close infrastructure that
was already in place but was not being utilized.
2009-10-01 04:11:32 +01:00
Jeff Ames 606e831ff5 Formatting cleanup. 2009-10-01 09:38:36 +09:00
John Hurliman 5dfd2643df * Change the signature of the agent set appearance callback to prevent unnecessary serialization/deserialization of TextureEntry objects and allow TextureEntry to be inspected for missing bakes
* Inspect incoming TextureEntry updates for bakes that do not exist on the simulator and request the missing textures
* Properly handle appearance updates that do not have a TextureEntry set
2009-09-30 15:53:03 -07:00
Melanie 041aaaa62c Prevent null data being sent to the decoder 2009-09-30 22:21:22 +01:00
Melanie 400abed271 Add RebakeAvatarTexturesPacket to the client view 2009-09-30 21:33:20 +01:00
Melanie b0c0d6f9d1 Squelch the debug noise from diva's patch 2009-09-30 20:36:20 +01:00
John Hurliman f56dc5fcda Attempting to improve the robustness of texture decoding by always ignoring LayerInfo.End values and creating guessed default layer boundaries on failed decodes Changed a noisy J2K decode log message from Info to Debug Replacing openjpeg-dotnet decoding with managed CSJ2K decoding. Should be much more reliable, faster, and use less memory
* Re-added openjpeg-dotnet files since they are used elsewhere in OpenSim * Updated prebuild.xml with a reference to CSJ2K

* Renamed IJ2KDecoder and J2KDecoder member names to follow standard naming conventions * Removed j2kDecodeCache cruft and replaced it with the OpenSim cache system * Rewrote the default layer boundary algorithm to use percentages instead of an exponent * Switched from an infinite in-memory cache to an expiring cache (10 minute timeout) * Slightly quieted logging errors for failed texture decodes
2009-09-30 19:26:53 +01:00
Diva Canto 4bf47fa592 This releases the texture assets from LLImageManager cache, and re-requests them later if the client asks for them again. Needs more testing in texture-rich sims. 2009-09-30 18:41:41 +01:00
Jeff Ames ee205e7e81 Formatting cleanup. 2009-10-01 01:17:47 +09:00
Diva Canto 5d09c53a1a Unpacking the mess with OtherRegionUp, so we can have a real cache of the neighbours in the grid service modules. 2009-09-27 10:14:10 -07:00
Adam Frisby 5dc3e560d3 * Makes SimulatorEnable messages 'reliable' and subject to redelivery. 2009-09-23 10:30:18 +10:00
Jeff Ames c41387b864 Formatting cleanup. 2009-09-10 15:57:53 +09:00
Teravus Ovares (Dan Olivares) c605509da3 * Lock timers when Calling Start() and Stop() when the Thread Context is murky. This affects Mono only. 2009-09-09 16:20:19 -04:00
Diva Canto b03eeeb9f6 * Fixes mantis http://opensimulator.org/mantis/view.php?id=4044. Turns out folders were never being removed from trash when they were singled out for purging in trash. They were being removed when Trash was purged as a whole. That behavior is now fixed for the new InventoryService set.
* Removed left-overs from AssetInventoryServer.
2009-08-22 10:24:26 -07:00
Diva Canto 9e64427262 Putting the inventory packets back to ThrottleOutPacketType.Asset, because that didn't work. 2009-08-20 21:56:06 -07:00
Diva Canto 922007443e Changed most of inventory packets to LowPriority, to see if that helps with freezing on searching large inventories. 2009-08-20 21:36:57 -07:00
Diva Canto 118f710a79 Fixed a missing field in SendBulkInventoryFolderUpdate. 2009-08-20 16:18:32 -07:00
Diva Canto d519f1885f Added MoveItems, which is most useful upon viewer-delete inventory operation. Moving a batch of items is a 1-time operation. Made it async anyway, so that the viewer doesn't wait in case the DB layer is dumb (which is the case currently). 2009-08-19 10:56:08 -07:00
Diva Canto c5af39239f A better purge of trash folder. 2009-08-19 00:13:51 -07:00
Diva Canto 124f66bfc2 jhurliman's patch in http://opensimulator.org/mantis/view.php?id=4024 2009-08-18 22:17:47 -07:00
dahlia 465d1095dd Added new OpenSim.ini setting: "client_throttle_max_bps" which overrides user's viewer network throttle settings 2009-08-18 17:06:14 -07:00
Melanie 9ad3e72ae1 Did I say that i don't like git? Remove some stuff that shouldn't have
gone in.
2009-08-17 22:06:51 +01:00
Diva Canto fa8a94577a Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim 2009-08-17 05:55:38 -07:00
Melanie 644db1e540 Add System.Xml reference to the console project 2009-08-17 09:40:38 +01:00
Teravus Ovares (Dan Olivares) acc14c472d Merge branch 'master' of ssh://MyConnection/var/git/opensim 2009-08-16 12:15:14 -04:00
Teravus Ovares (Dan Olivares) 5e391b9f7c * ShortVersion, another attempt at fixing the test thread death that randomly occurs.
* LongVersion nIni may be causing the test thread death.  Pausing OpenSimulator during startup causes a nIni error that makes debugging startup operations difficult for users.  It might be because when it's in pause mode, something else reads from the nini config passed?   If it is, it might not be fixable..   however, if it's concurrency that causes nini death it would make sense to give each section of the tests a new IConfigSource so that they don't read from the same configsource at the same time.
2009-08-16 12:14:49 -04:00
Diva Canto 6808b9109e Merge branch 'master' of ssh://diva@opensimulator.org/var/git/opensim into inventory-connector 2009-08-16 08:59:58 -07:00
Adam Johnson a42569d896 Thanks dmiles for a patch that adds PacketType.RequestMultipleObjects Packet Handler - ref mantis #4010 2009-08-16 15:06:06 +09:00
Diva Canto 034c9cf606 Added GetAssetPermissions. Few last bugs nixed. This is ready for testing. 2009-08-13 17:34:15 -07:00
Diva Canto 5246dc33dc Renamed QueryItem/QueryFolder to GetItem/GetFolder. The word 'query' starting to get on my nerves. 2009-08-13 14:10:12 -07:00
Diva Canto 6b9cc6c48d Inventory redirects from CachedUserInfo to InventoryService COMPLETE! 2009-08-13 11:30:29 -07:00
Justin Clark-Casey (justincc) 655438a59d Apply http://opensimulator.org/mantis/view.php?id=1448
Store and retrieve user profile url at runtime
Not yet persisted
Thanks Fly-Man
2009-08-11 17:29:15 +01:00
Diva Canto 0d8284c7a1 Removed IAssetCache.
WARNING: PLEASE MAKE SURE TO USE THIS NEW bin/OpenSim.addin.xml
2009-08-10 08:14:57 -07:00
Teravus Ovares (Dan Olivares) bff26ccdbb * More tweaking of the various services to work with nonstandard region sizes. * Now, what's available of the terrain will show and it'll be truncated if it's larger on Linden Clients. Parcel minimum is 64 (256/4) for the client to accept it. 2009-08-08 00:10:19 -04:00
Justin Clark-Casey 190bdc8a2e * Remove some mono compiler warnings 2009-08-05 17:33:23 +01:00
dr scofield (aka dirk husemann) 4ffc284a36 trying to fix rare timer related exception. 2009-08-04 17:24:32 +02:00
Teravus Ovares f727f26bcc * An attempt to fix mantis #3953 2009-07-29 20:32:54 +00:00
Melanie Thielker f94985a939 Add the missing block to the alert message 2009-07-28 20:27:31 +00:00
Melanie Thielker aa06d9f98b Add the new StatusData block to the other two searchh packets 2009-07-28 19:28:01 +00:00
Melanie Thielker 64c874a951 Fix a null data block in DirClassifiedReply packet, preventing a session
crash in search.
Fixes Mantis #3952
2009-07-28 18:46:45 +00:00
diva 5ca02f0a08 This does NOT address the issue in mantis #3940, but it may avoid the exception reported there by WiLLuMPJuH Huisman pertaining to TeleportFailedPacket. 2009-07-27 19:20:48 +00:00
Teravus Ovares 5ae1ad995d * Fix Groups Module Null Reference when you were not a member of any group. 2009-07-25 17:29:25 +00:00
Melanie Thielker 7317bd7675 Correct an issue in group packet sending that causes a nullref with
libomv-0.7.
2009-07-25 16:55:11 +00: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
Teravus Ovares cf712075e5 * Remove a noisy debug console message that was used for testing the camera constraints. Ooops. 2009-07-19 02:41:32 +00:00
Teravus Ovares 08819bcbea * Created a way that the OpenSimulator scene can ask the physics scene to do a raycast test safely.
* Test for prim obstructions between the avatar and camera.  If there are obstructions, inform the client to move the camera closer.  This makes it so that walls and objects don't obstruct your view while you're moving around.   Try walking inside a hollowed tori.   You'll see how much easier it is now because your camera automatically moves closer so you can still see.
* Created a way to know if the user's camera is alt + cammed or just following the avatar.
* Changes IClientAPI interface by adding SendCameraConstraint(Vector4 CameraConstraint)
2009-07-19 02:32:02 +00:00
MW acea31518b fixed the bug where changing the rotation of a selection of prims in a linkset, made each of those prims rotate around its own centre rather than around the geometric centre of the selection like they should do (and like the client expects).
This involved adding a new OnUpdatePrimSingleRotationPosition event to IClientAPI so that we can get the changed position from the client. 
Btw adding new events to IClientAPI is really tedious where you have to copy the change across to at least 5 or 6 other files. 
[Note this doesn't fix the bug where any rotation changes to the root prim (but not the whole linkset) cause rotation errors on the child prims.]
2009-07-17 14:58:54 +00:00
MW d9a8ecf238 Changed the DeRezObject event so it passes a list<uint> of localIDs in one event trigger rather than triggering the event once for every localid in the derez packet. 2009-07-12 12:32:39 +00:00
Jeff Ames 1d01d6d919 Formatting cleanup. 2009-07-01 23:37:09 +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
Arthur Valadares 4f6efa0249 * C# compiler is not smart enough to understand ClientLoop is under very heavy usage and inline DebugPacket, so DebugPacket is run as a method, causing Packet
to be constantly pushed and popped uselessly, if you are not debugging packets. This showed some really big difference in a mock test, let's see how it behaves here.
2009-06-29 19:24:30 +00:00
Arthur Valadares 6da88dceb0 * Changing List to Dictionary in PacketQueue.Dequeue for great justice (and performance) 2009-06-29 16:55:00 +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 74f7b586d3 fixing windows specific compile error. 2009-06-25 08:28:59 +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
Dr Scofield a1ba9dee8d adding logging statement for receive buffer size 2009-06-25 07:50:19 +00:00
Dr Scofield 8f5efc4994 - adds the possibility of setting the socket receive buffer size
option for LLUDPServer. On windows .NET the default socket receive
  buffer size is 8192 bytes, on recent linux systems it's about
  111K. both value can be a bit small for an OpenSim instance serving
  many clients. The socket receive buffer size can be configured via
  an OpenSim.ini config option

- adds a general catch clause to LLUDPServer.OnReceivedData() to
  prevent it submerging when an unexpected Exception occurs.
2009-06-25 07:50:02 +00:00
Dr Scofield afd5f76648 From: Alan Webb <alan_webb@us.ibm.com>
This change moves texture send processing out of the main
  packet processing loop and moves it to a timer based
  processing cycle.

  Texture packets are sent to the client consistently over
  time. The timer is discontinued whenever there are no
  textures to transmit.

  The behavior of the texture sending mechanism is controlled
  by three variables in the LLCLient section of the config
  file:

   [1] TextureRequestRate (mS) determines how many times per second
       texture send processing will occur. The default is 100mS.
   [2] TextureSendLimit determines how many different textures
       will be considered on each cycle. Textures are selected
       by priority. The old mechanism specified a value of 10 for
       this parameter and this is the default
   [3] TextureDataLimit determines how many packets will be sent for
       each of the selected textures. The old mechanism specified a
       value of 5, so this is the default.

  So the net effect is that TextureSendLimit*TextureDataLimit
  packets will be sent every TextureRequestRate mS.

  Once we have gotten a reasonable feeling for how these parameters
  affect overall processing, it would be nice to autonmically manage
  these values using information about the current status of the
  region and network.

  Note that this also resolves the pathologcal problem that
  previously existed which was that a seated avatar generated very
  few in-bound packets (theoretically) and would therefore be the
  least able to retrieve the images being displayed by a
  projector script.
2009-06-25 07:42:06 +00:00
Melanie Thielker 41b8e2de9e Also fix group role membership packet sizes to stay safely below MTU 2009-06-23 22:11:34 +00:00
Melanie Thielker 8cf16f6ea4 Can I be this dumb? 2009-06-23 21:17:20 +00:00
Melanie Thielker 2a766b9082 Fix an error in group membership sending when the memebr count exceeds 60
Also reduce limit to 40 to allow for last logon dates and titles
2009-06-23 20:27:35 +00:00
Melanie Thielker a2635e43da Allow the member list of groups with more than 70 members to be viewed
without crashing
2009-06-23 14:37:51 +00:00
Melanie Thielker 56d0966a32 Commenting out the jhurliman fix, since our libOMV doesnt' have those fields
yet.
2009-06-23 08:56:45 +00:00
Melanie Thielker 2d7dd5f63e Correct an uninitialized field in a packet. Thanks, jhurliman.
Fixes Mantis #3831
2009-06-23 08:51:35 +00:00
Melanie Thielker bc1dce071a Correct the behaviro of group deeding and llGetOwner() within deeded objects 2009-06-21 19:49:11 +00:00
Sean Dague 1adeb8ad77 From: Chris Yeoh <yeohc@au1.ibm.com>
This patch ensures that the touch positions are set during touch_end
events (currently only working for touch_start and touch events).
2009-06-19 12:21:20 +00:00
Dahlia Trimble 00d042f3d1 Thanks Michelle Argus for Mantis #0003742: Terrain editor - Flatten tool lowers Land 2009-06-18 23:02:12 +00:00
Melanie Thielker 8aaeec598e Fix an uninitialized data block. Thanks, jhurliman 2009-06-17 23:46:13 +00:00
Jeff Ames a23d64dec1 Formatting cleanup. 2009-06-10 04:28:56 +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
diva 275e53b126 This may bring the missing texture back. 2009-05-28 15:05:00 +00:00
Jeff Ames e0bc5c5db2 Add copyright headers, formatting cleanup. 2009-05-20 01:32:06 +00:00
Dr Scofield 14f0d5e77f trying to fix exception with in LLPacketQueue probably caused by
missing locks where the queue was modified.
2009-05-19 18:46:20 +00:00
Dr Scofield a885556063 From: Chris Yeoh <yeohc@au1.ibm.com>
We've encountered problems with textures never fully downloading and
objects not moving or being deleted (from the client's point of view)
even when the bandwidth settings on the client have been set very
low. This can happen over reasonably lossy links (eg you're on the
other side of the world from the server) as the server retries 3 times
and then gives up.

Whilst its possible to set ReliableIsImportant, this forces the server
to keep retrying no matter what which potentially could lead to
problems. This patch allows for the setting of MaxReliableResends
explicitly (is set to 3 normally) in OpenSim.ini so if you know you
will have clients connecting with poor connections you can set it a
bit higher (10-15 works quite well even for very poor connections).
2009-05-18 16:10:48 +00:00
diva 0379dbe2fd Removing a superfluous message, just to make bamboo run again. 2009-05-17 02:15:08 +00:00
Homer Horwitz 99cf8e3f5a Send the owner name, not the client name on SendDialog.
This modifies IClientAPI.SendDialog slightly.
Fixes Mantis #3661.
2009-05-16 16:01:25 +00:00
diva 5e4fc6e91e Heart surgery on asset service code bits. Affects OpenSim.ini configuration -- please see the example. Affects region servers only.
This may break a lot of things, but it needs to go in. It was tested in standalone and the UCI grid, but it needs a lot more testing.
Known problems: 
* HG asset transfers are borked for now
* missing texture is missing
* 3 unit tests commented out for now
2009-05-15 05:00:25 +00:00
Melanie Thielker fca73f3ae4 Add more group notify glue 2009-05-12 15:52:28 +00:00
Melanie Thielker 1b7d0a6c93 Paving the way for syncing group permissions across a grid 2009-05-12 14:59:11 +00:00
Adam Frisby 6dcafec22d * Implements IP and DNS based ban facilities to OpenSim.
* User interface is ... primitive at best right now.
* Loads bans from bans.txt and region ban DB on startup, bans.txt is in the format of one per line. The following explains how they are read;

DNS bans are in the form "somewhere.com" will block ANY matching domain (including "betasomewhere.com", "beta.somewhere.com", "somewhere.com.beta") - make sure to be reasonably specific in DNS bans.

IP address bans match on first characters, so, "127.0.0.1" will ban only that address, "127.0.1" will ban "127.0.10.0" but "127.0.1." will ban only the "127.0.1.*" network
2009-05-11 19:23:51 +00:00
Adam Frisby 53a350573e * Further testing against core packet issue. 2009-05-10 20:31:45 +00:00
Adam Frisby da948a992a * Attempting to diagnose a core packet issue on Windows/.NET. Adding additional locks to see if it fixes the problem. 2009-05-10 20:25:05 +00:00
Melanie Thielker e4236a4233 Fox a boo-boo in ExtraParams - a packet with no data blocks could crash
the session. Also allow multiple data blocks.
2009-05-09 12:04:40 +00:00
Sean Dague ce0a84cbc0 instrument most of the tests with a new InMethod function that may help us figure
out where that pesky deadlock is during test runs.
2009-05-07 19:07:08 +00:00
Melanie Thielker aa4e42069b Change avatar updates to be processed the same way object updates are, e.g.
packet length check. More changes to come
2009-05-07 12:06:07 +00:00
Jeff Ames 8ea12ad6c0 Add copyright header. Formatting cleanup. Ignore some generated files. 2009-05-05 09:59:15 +00:00
Melanie Thielker acfb5051cd Intermediate commit. WILL NOT COMPILE! 2009-05-04 20:15:39 +00:00
Justin Clarke Casey 257fc5515a * minor: remove some mono compiler warnings, minor cleanup 2009-05-04 15:38:36 +00:00
Melanie Thielker 36dd346a91 Add a method to flush the prim update buffers once a frame, since the timer
appear to be too slow to be useful, or fail too fire. I may remove the timers
as a consequence if this.
2009-05-04 14:25:19 +00:00
Melanie Thielker b44a56e0b4 Add a parameter that limits the max size of the outbound packet. Defaulted
at 1400 since the headers get added to that (32 bytes plus UDP headers)
2009-05-04 02:24:30 +00:00
Melanie Thielker e8b532b26a Make a race condition in packet resending smaller 2009-05-03 09:43:52 +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
Adam Frisby 0b2a34438c * Makes ObjectUpdate compressing tweakable in OpenSim.ini - introduces:
TerseUpdatesPerPacket=10
FullUpdatesPerPacket=14
TerseUpdateRate=10
FullUpdateRate=14
2009-05-02 19:09:48 +00:00
Melanie Thielker 66e25abbfe Plumb conifg into the client views. Add config option to configure packet
dropping.
2009-05-02 17:31:49 +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
Melanie Thielker 55a69f3f2d Improve prim sending by combining multiple prim updates into a single packet 2009-05-01 16:29:15 +00:00
Melanie Thielker e901c8be17 Thank you, mpallari, for a patch that correct the behavior of the avatar
performance patch.
Fixes Mantis #3562
2009-04-30 15:26:37 +00:00
Melanie Thielker 334738fca9 Thank you, mpallari, for a patch that increses efficiency by combining
avatar updates into a single packet.
Applied with changes.
Fixes Mantis #3136
2009-04-30 11:58:23 +00:00
Melanie Thielker e2327384e0 Catch another j2k decode exception that can be caused by a bad asset 2009-04-29 21:01:01 +00:00
Melanie Thielker 98cdc1efdd Fix a crash that will hit when an image asset is truncated in storage 2009-04-29 20:32:40 +00:00
Dr Scofield 84701701ef fixes exception thrown when client session is shutdown while
packethandler still active
2009-04-29 12:31:43 +00:00
Dahlia Trimble 4792e6139a Thanks Bluewall for Mantis #3519: a patch that adds simulator uptime and version to REST/json statistics reporting 2009-04-25 05:06:01 +00:00
Dr Scofield 458f7eb9b3 cleaning up, fixing warnings 2009-04-22 09:42:44 +00:00
Jeff Ames 6aa5d3904d Add copyright headers. Formatting cleanup. 2009-04-22 00:48:56 +00:00
Melanie Thielker 01a22d940f Change a bad use of a type name as a variable. Thanks, Fly-Man
Fixes Mantis #3497
2009-04-20 21:58:32 +00:00
Melanie Thielker d91330ea35 Add PlacesQuery packet 2009-04-20 20:43:48 +00:00
Melanie Thielker dd0fa5745e It is possible that apacket is recieved before the clint stack is fully ready.
This causes a nullref we need to catch here.
2009-04-20 17:24:09 +00:00
Charles Krinke 2578db3dfa Thank you kindly, RemedyTomm for a patch that:
Following feedback from 0003440, i've made some changes to the new texture pipeline to optimise
 performance. The changes are:
 - Fixed a math issue where a small percentage of images with a certain size (on the packet boundary) would not have their final data delivered. This issue has been present since pre- 0003440
 - It was suggested that a discardlevel of -1 and a prioriy of 0 meant to abandon the transfer, this is incorrect and caused some textures to clog.
 - The texture throttle blocking queue is now only filled in relation to the actual throttle amount.. i.e, on a connection throttled to 300k, only twenty packets will be placed in the queue at a time, on a larger connection it will be much more. This is to balance responsiveness to requests and speed, and to minimise wasted packets.
 - The engine now keeps track of the number of pending textures, and the stack will not be walked if there's no textures pending, saving CPU. Textures are only considered "pending" when they've already been decoded.
 - As part of the above, some textures may receive twice as much data per cycle if the number of pending textures is below the cycle threshold, this should prevent loading from slowing down when there are fewer textures in the queue.
2009-04-18 18:35:03 +00:00
Charles Krinke b4cb45bb79 Fixes Mantis # 3469. Thank you kindly, BlueWall, for a patch that:
This patch adds extended status reporting with the url 
http://server:port/simstatusx/ [^] . The data is returned 
in json format as "text/plain" type.
2009-04-17 21:48:48 +00:00
Melanie Thielker 4b85cbf0b6 Correctly flag group owned prims in the land prim list 2009-04-16 01:01:40 +00:00
Melanie Thielker ac96722c1d Fix build break and change some groups interfaces 2009-04-16 00:46:24 +00:00
Melanie Thielker 7306b73f02 Commit the group deeding support, thank you, mcortez 2009-04-15 21:07:09 +00:00
Justin Clarke Casey 9f6b8ec9b0 minor: Remove some mono compiler warnings. Uncomment code when it's actually being used. 2009-04-15 19:46:37 +00:00
Johan Berntsson 119aeeed7d Another cleanup: Region_Status renamed to RegionStatus, and a usage comment added 2009-04-15 04:15:47 +00:00
Melanie Thielker a0417f5791 Thank you, Fly-Man, for a patch that adds the stub to handle the
avatar interests update.
2009-04-14 03:44:27 +00:00
Teravus Ovares c2e75aecd1 * Commit a variety of fixes to bugs discovered while trying to fix the NaN singularity.
* WebStatsModule doesn't crash on restart.   GodsModule doesn't crash when there is no Dialog Module.  LLUDPServer doesn't crash when the Operation was Aborted.  
* ODEPlugin does 'Almost NaN' sanity checks.
* ODEPlugin sacrifices NaN avatars to the NaN black hole to appease it and keep it from sucking the rest of the world in.
2009-04-14 01:57:35 +00:00
Teravus Ovares ab83af0341 * Set eol-style: native on J2KImage.cs 2009-04-13 23:06:29 +00:00
Teravus Ovares 9371df52cb *Bypass J2kDecoder when asset is null 2009-04-13 15:18:38 +00:00
Sean Dague 532ae6d925 if Data is null, shortcut to client.SendImageNotFound, as any other
option at this point is going to give us a NullReferenceException
2009-04-13 15:08:06 +00:00
Sean Dague 15d39f33ca scream out a bit warning if we failed to set default image 2009-04-13 14:52:29 +00:00
Sean Dague b2e5f03942 catch for a null asset so we don't get an exception here, though this
probably just makes the decoder break somewhere else.
2009-04-13 14:52:23 +00:00
Sean Dague 58fd013929 put J2KImage into it's own file, please no doubling up on classes in
files
2009-04-13 14:52:14 +00:00
Teravus Ovares 515bf6d7dc * Patch from RemedyTomm Mantis 3440
* Revamps the server side texture pipeline
* Textures should load faster, get clogged less, and be less blurry
* Minor tweak to ensure the outgoing texture throttle stays private.
* Fixes mantis 3440
2009-04-10 08:30:21 +00:00
nlin 8e6c20b27f Handle ObjectSpin* packets to spin physical prims on Ctrl+Shift+Drag
Addresses Mantis #3381

The current implementation works as expected if the object has no rotation or 
only rotation around the Z axis; you can spin the object left or right (around
the world Z axis).

It works a little unexpectedly if the object has a non-Z-axis rotation; in this
case the body is spun about its local Z axis, not the world Z-axis. (But SL 
also behaves oddly with a spin on an arbitrarily rotated object.)
2009-04-10 06:39:52 +00:00
Justin Clarke Casey 601fa22185 * minor: remove some mono compiler warnings 2009-04-09 20:06:30 +00:00
lbsa71 6af0751cc5 * Tagged long running tests with LongRunningAttribute.
* Now, the 144 unit tests takes roughly as long time to run (16s on my laptop) that the 10 long running takes. The database tests takes forever.
* Feel free to run the unit tests as you code, and the rest before commit.
2009-04-09 20:06:27 +00:00
Justin Clarke Casey f3c7298fc5 * Make it possible to store creator strings in user inventory items as well as UUIDs
* All existing functionality should be unaffected.
* Database schemas have not been changed.
2009-04-08 17:50:57 +00:00
Teravus Ovares 8d8c45b659 * Fix the remainder of the packets that require sessionId checks. 2009-04-08 16:31:56 +00:00
Adam Frisby 5118f88bc4 * [SECURITY] Implements additional packet security checks for Object related packets.
* Note: as with the last commit, this requires additional testing.
* This represents 2/8ths of packets now being checked appropriately.
2009-04-08 06:41:52 +00:00
Adam Frisby 2bd6a915a0 * [SECURITY] Implements a large number of new security checks into Scene/Avatar packet processing within ProcessInPacket.
* Notes: this requires heavy testing, it may cause new issues where LL have recycled agent block data for non-security purposes. It can be disabled on Line 4421 of LLClientView.cs by changing m_checkPackets to false.
* This represents approx 1/8th of the packets being checked.
2009-04-08 06:31:19 +00:00
Justin Clarke Casey 0752dd65cc * Ooops, really put this on the task queue and not texture 2009-04-07 19:30:10 +00:00
Justin Clarke Casey 952960e375 * Put AgentTextureCached? response packet on the task queue rather than the wind queue
* Thanks to rtomita for pointing this out.
2009-04-07 19:23:17 +00:00
Justin Clarke Casey ed6165ab9c * Apply http://opensimulator.org/mantis/view.php?id=3227
* Implement "Add To Outfit"
* Thanks FredoChaplin
2009-04-07 17:46:23 +00:00
Homer Horwitz 8136cf4075 Thanks jonc, for a patch that adds rendering of classic clouds.
First part of Mantis #964, the necessary clouds image will follow separately.
2009-04-04 15:43:02 +00:00
nlin 449bebf16e Preliminary work to support ObjectSpin* packets when user invokes CTRL / SHIFT / MOUSE DRAG on a physical object
Addresses Mantis #3381
2009-04-04 13:13:14 +00:00
lbsa71 7f4bf5871d * Proactively fixed bug-potential concerning the fact that m_httpServer property was differently referred to between RegionApplicationBase and all other grid services. 2009-04-03 20:56:36 +00:00
Melanie Thielker a4ba587df7 Adding the Length override to the KillPacket 2009-03-31 21:34:29 +00:00
Jeff Ames 20e1a8d7f6 Thanks rtomita for a patch to add a handler for the RemoveInventoryObjects packet. (bug #3304) 2009-03-31 05:47:53 +00:00
Justin Clarke Casey 176f263d23 * minor: remove mono compiler warnings 2009-03-30 18:34:43 +00:00
Melanie Thielker f88d755f96 Add PickInfoReply packet.
Fixes Mantis #3324
2009-03-30 11:51:34 +00:00
Melanie Thielker c483206fd7 Change the client API to use GridInstantMessage for the "last mile" of IM
sending. With this change, all methods that handle IM now use GridInstantMessage
rather than individual parameters.
2009-03-29 05:42:27 +00:00
Melanie Thielker 404bfdc9a6 Finish the offline IM module (still needs a server). Add rudimentary
support for the mute list (no functionality yet, but allows the
RetrieveInstantMessages event to fire now).
2009-03-29 00:48:34 +00:00
Melanie Thielker 4f6c4378da Add mute list request event and dummy response 2009-03-28 04:21:44 +00:00
Teravus Ovares f5812b3702 * Adds AgentUUIDs into the CourseLocationUpdate to improve compatibility with LibOMV based clients.
* Modifies the IClientAPI!  So client stacks will need to be modified!
2009-03-28 01:40:33 +00:00
Melanie Thielker cbef90fec6 Add the events needed for profiles.
Fixes Mantis #3324
2009-03-27 22:47:41 +00:00
Teravus Ovares 52c482a7a7 * This updates LibOMV to the current release 0.6.0 on March 19 2009
* Important:  HttpServer.dll was changed to HttpServer_OpenSim.dll so that the HttpServer references do not conflict if you've copied the OpenMetaverse.Http.dll and requirements to the OpenSimulator bin folder.
This means that if you reference HttpServer.dll in any projects, you will need to change the reference to HttpServer_OpenSim.dll.   It still uses the Same HttpServer namespace though.
2009-03-27 22:13:09 +00:00
Melanie Thielker 37e81c7d54 Remove a hardcoded flow/dependency on the money module from LLCLientView 2009-03-27 18:51:45 +00:00
lbsa71 3cb06cc4cc * Changed a recursive BeginRobustReceive loop to a flat while loop to avoid lethal stack overflows. 2009-03-25 19:30:36 +00:00
Melanie Thielker f86c13f48e Send proper creation date on item gives, so objects will appear at the top of
"Objects", not at the bottom
2009-03-22 20:05:11 +00:00
Jeff Ames fec8aef03a Thanks rtomita for a patch to add handlers for prim scale updates from libomv-based clients. (#3291) 2009-03-14 22:55:17 +00:00
Melanie Thielker ddbf81fa07 Thank you, mcortez, for a patch that fixes a number of long standing
issues with the sun module.
Fixes Mantis #3295
2009-03-13 23:45:02 +00:00
Jeff Ames 6462014250 Thanks rtomita for a patch to fix inventory listings for clients using libomv. (#3285) 2009-03-11 18:46:52 +00:00
idb aab1601642 Limit the message length from llInstantMessage to 1024 characters http://wiki.secondlife.com/wiki/LlInstantMessage
Also truncate messages that may exceed the limit set by the packet size. The limit in OpenMetaverse is 1100 bytes including a zero byte terminator.
Fixes Mantis #3244
2009-03-07 14:16:26 +00:00
Justin Clarke Casey 6c735e0828 * Replace some string to byte conversions for object/item name/description fields with the LLUtil function that prevents the max string size from being breached 2009-03-05 19:32:27 +00:00
MW 3c46ee9326 Moved the SetupScene methods from RegionApplicationBase to OpenSimBase [Do we really still need RegionApplicationBase?]
Added a flag (bool m_autoCreateLindenStack = true) which says if the ClientStack will be autocreated and initialised when creating regions. This helps with moving ClientStacks to Region modules. 
Currently this flag is hardcoded to true, as it is only for testing at the moment, so you need to change the value in the code if you want to turn off auto creating.
2009-03-02 16:33:11 +00:00
MW ff76102644 Changed IClientNetworkServer.AddScene method from void AddScene(Scene x) to void AddScene(IScene x). As there should be no need for the client view to have a reference to Scene. IScene should be all it needs. 2009-03-02 14:42:01 +00:00
Melanie Thielker ed2de7ac82 Plumb in the RetrieveInstantMessages event that is sent by the viewer
when it is ready to receive offline IM
2009-02-26 20:11:55 +00:00
MW 33e7c09b7b Added IRegistryCore and RegistryCore to OpenSim.Framework.
Added a ApplicationRegistry to OpenSimBase.
Changed LoadRegionsPlugin so it registers itself to that application registry.
Added a event to LoadRegionsPlugin, that is triggered when it creates a new scene ,although maybe this event should actually be in opensimBase incase other plugins are creating regions (like the RemoteAdminPlugin).
2009-02-26 20:01:20 +00:00
Justin Clarke Casey 36e648a37a * minor: Remove most mono compiler warnings 2009-02-25 20:53:02 +00:00
Charles Krinke 6515d8be0e Fixes Mantis #3220. Thank you kindly, MPallari, for a patch that:
This patch changes InformClientOfNeighbour, CrossRegion and 
SendRegionTeleport methods to virtual.
2009-02-25 04:38:06 +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
Charles Krinke 8f55b9d735 Mantis#3218. Thank you kindly, TLaukkan (Tommil) for a patch that:
* Added log4net dependency to physxplugin in prebuild.xml.
* Added missing m_log fields to classes.
* Replaced Console.WriteLine with appropriate m_log.Xxxx
* Tested that nant test target runs succesfully.
* Tested that local opensim sandbox starts up without errors.
2009-02-22 20:52:55 +00:00
MW 89006da793 Added a check to LLClientView.RegisterInterface<T>(T iface), so that it can't try to add duplicate interfaces and cause a exception. 2009-02-21 14:30:17 +00:00
lbsa71 1cadad9ec6 * Applied a patch that: Added estate ban table to migration scripts and nhibernate mapping. Refactored property getters and setters for estate ban object to support NHibernate.
* Added estate ban table to migration scripts of all supported databases.
* Added nhibernate mapping for EstateBans property of EstateSettings
* Refactored property accessors for EstateBan object.
* Added comments for EstateBan properties.
* Ensured that NHibernate tests pass with NUnitGUI.
* Ensured that nant test target passes.  

This fixes mantis #3210. Thank you, tlaukkan!
2009-02-21 09:39:33 +00:00
Melanie Thielker 863556f2cc Thank you, Snowdrop, for a patch that makes the callback ID parameter
usable. Applied with formatting changes, please don't introduce
K&R style indentations into OpenSim
Fixes Mantis #3190
2009-02-19 03:09:56 +00:00
Melanie Thielker 3130784934 Re-add the objectID field to the anim pack, that was deemed unneccessary
and dropped nonths ago, because it is required to get smooth region
crossings with AO running. Without it, in some corner cases, anims will
continue to run in an unstoppable state.
2009-02-17 04:16:42 +00:00
Mike Mazur 76c0935ec7 - remove the Metadata property from AssetBase and return all previous
properties as before
- prefix private variables with m_ in AssetBase.cs
- related to Mantis #3122, as mentioned in
  https://lists.berlios.de/pipermail/opensim-dev/2009-February/005088.html
- all services will likely need to be upgraded after this commit
2009-02-17 01:36:44 +00:00
Justin Clarke Casey 42bd38960c * Apply http://opensimulator.org/mantis/view.php?id=3149
* If the texture does not contain any discard levels the last image packet was not sent
* Thanks Snowdrop
2009-02-13 17:02:26 +00:00
Justin Clarke Casey 88b273bc71 * refactor: Move export map function to world map module from scene 2009-02-13 16:43:20 +00:00
lbsa71 801da4346a * optimized usings. 2009-02-12 09:53:12 +00:00
diva 5dae1ddb5a Fixes mantis #3121. 2009-02-12 01:09:51 +00:00
diva b6e7e5ed42 Enforce estate bans on Teleports. 2009-02-11 21:07:41 +00:00
Justin Clarke Casey 8645c7482d * Change SendBulkUpdateInventory from two methods to one which accepts an InventoryNode 2009-02-11 19:57:45 +00:00
Dr Scofield 180be7de07 this is step 2 of 2 of the OpenSim.Region.Environment refactor.
NOTHING has been deleted or moved off to forge at this point.  what
has happened is that OpenSim.Region.Environment.Modules has been split
in two:

- OpenSim.Region.CoreModules: all those modules that are either
  directly or indirectly referenced from  other  OpenSim packages, or
  that provide functionality that the OpenSim developer community
  considers core functionality:

      CoreModules/Agent/AssetTransaction
      CoreModules/Agent/Capabilities
      CoreModules/Agent/TextureDownload
      CoreModules/Agent/TextureSender
      CoreModules/Agent/TextureSender/Tests
      CoreModules/Agent/Xfer
      CoreModules/Avatar/AvatarFactory
      CoreModules/Avatar/Chat/ChatModule
      CoreModules/Avatar/Combat
      CoreModules/Avatar/Currency/SampleMoney
      CoreModules/Avatar/Dialog
      CoreModules/Avatar/Friends
      CoreModules/Avatar/Gestures
      CoreModules/Avatar/Groups
      CoreModules/Avatar/InstantMessage
      CoreModules/Avatar/Inventory
      CoreModules/Avatar/Inventory/Archiver
      CoreModules/Avatar/Inventory/Transfer
      CoreModules/Avatar/Lure
      CoreModules/Avatar/ObjectCaps
      CoreModules/Avatar/Profiles
      CoreModules/Communications/Local
      CoreModules/Communications/REST
      CoreModules/Framework/EventQueue
      CoreModules/Framework/InterfaceCommander
      CoreModules/Hypergrid
      CoreModules/InterGrid
      CoreModules/Scripting/DynamicTexture
      CoreModules/Scripting/EMailModules
      CoreModules/Scripting/HttpRequest
      CoreModules/Scripting/LoadImageURL
      CoreModules/Scripting/VectorRender
      CoreModules/Scripting/WorldComm
      CoreModules/Scripting/XMLRPC
      CoreModules/World/Archiver
      CoreModules/World/Archiver/Tests
      CoreModules/World/Estate
      CoreModules/World/Land
      CoreModules/World/Permissions
      CoreModules/World/Serialiser
      CoreModules/World/Sound
      CoreModules/World/Sun
      CoreModules/World/Terrain
      CoreModules/World/Terrain/DefaultEffects
      CoreModules/World/Terrain/DefaultEffects/bin
      CoreModules/World/Terrain/DefaultEffects/bin/Debug
      CoreModules/World/Terrain/Effects
      CoreModules/World/Terrain/FileLoaders
      CoreModules/World/Terrain/FloodBrushes
      CoreModules/World/Terrain/PaintBrushes
      CoreModules/World/Terrain/Tests
      CoreModules/World/Vegetation
      CoreModules/World/Wind
      CoreModules/World/WorldMap

- OpenSim.Region.OptionalModules: all those modules that are not core
  modules:

      OptionalModules/Avatar/Chat/IRC-stuff
      OptionalModules/Avatar/Concierge
      OptionalModules/Avatar/Voice/AsterixVoice
      OptionalModules/Avatar/Voice/SIPVoice
      OptionalModules/ContentManagementSystem
      OptionalModules/Grid/Interregion
      OptionalModules/Python
      OptionalModules/SvnSerialiser
      OptionalModules/World/NPC
      OptionalModules/World/TreePopulator
2009-02-10 13:10:57 +00:00
Sean Dague 8088802c21 From Alan Webb <awebb@linux.vnet.ibm.com>
These changes replace all direct references to the AssetCache with
IAssetCache. There is no change to functionality. Everything works as
before.

This is laying the groundwork for making it possible to register
alternative asset caching mechanisms without disrupting other parts of
OpenSim or their dependencies upon AssetCache functionality.
2009-02-09 21:47:55 +00:00
Dahlia Trimble 8cc327cfa3 send group name in binary bucket in chatterbox invitation eventqueue message 2009-02-08 10:50:22 +00:00
Melanie Thielker 54c6a920ba Replace the console for all OpenSim apps with a new console featuring command
line editing, context sensitive help (press ? at any time), command line
history, a new plugin command system and new appender features thet let you
type while the console is scrolling. Seamlessly integrates the ICommander
interfaces.
2009-02-07 12:25:39 +00:00
Dr Scofield 9b66108081 This changeset is the step 1 of 2 in refactoring
OpenSim.Region.Environment into a "framework" part and a modules only
part. This first changeset refactors OpenSim.Region.Environment.Scenes,
OpenSim.Region.Environment.Interfaces, and OpenSim.Region.Interfaces
into OpenSim.Region.Framework.{Interfaces,Scenes} leaving only region
modules in OpenSim.Region.Environment.

The next step will be to move region modules up from
OpenSim.Region.Environment.Modules to OpenSim.Region.CoreModules and
then sort out which modules are really core modules and which should
move out to forge.

I've been very careful to NOT BREAK anything. i hope i've
succeeded. as this is the work of a whole week i hope i managed to
keep track with the applied patches of the last week --- could any of
you that did check in stuff have a look at whether it survived? thx!
2009-02-06 16:55:34 +00:00
Mike Mazur 0c03a48fb2 - add OpenSim.Framework.AssetMetadata class. AssetBase is now composed of it
- trim trailing whitespace
2009-02-04 00:01:36 +00:00
diva 360eb239b3 Hopefully fixes mantis #3063. 2009-01-31 00:15:13 +00:00
Dahlia Trimble c747990187 Send groups list via event queue 2009-01-27 06:14:11 +00:00
Dahlia Trimble 4dace03696 add a definition for a parcel properties CAP
send parcel properties via eventqueue rather than UDP to facilitate libomv clients - see Mantis #3040
2009-01-26 10:42:24 +00:00
Dahlia Trimble fa99f01378 more eventqueue IM nonsense 2009-01-26 08:04:12 +00:00
Teravus Ovares 76206543e8 * Adds console command, 'predecode-j2k <number of threads>' to load all of the texture assets from the scene and decode the j2k layer data to cache. The work is split between the number of threads you specify. A good number of threads value is the number of cores on your machine minus 1.
* Increases the number of ImageDataPackets we send per PriorityQueue pop and tweak it so that the number of packets is ( (2 * decode level) + 1 ) * 2, and (((2 * (5-decode level)) + 1) * 2).  The first one sends more data for low quality textures, the second one sends more data for high quality textures.
2009-01-25 04:34:00 +00:00
Justin Clarke Casey c277440e73 * minor: remove mono compiler warning 2009-01-23 20:44:35 +00:00
Dahlia Trimble 68978e6e2a add event queue code for sending group IM for future group support 2009-01-23 01:49:32 +00:00
Teravus Ovares 178fd97bd0 * Fixing a group title 2009-01-23 00:08:35 +00:00
Teravus Ovares 28ddc38deb * Remove a few unnecessary locks to try and prevent lock contention in LLImageManager 2009-01-22 18:28:32 +00:00
Teravus Ovares 9ebba37a7c * discovered! darn! Removing I <3 OpenSimulator from firstname 2009-01-22 10:04:15 +00:00
Teravus Ovares a7ccbb3de0 * Added some more comments
* Fixed up an outgoing packet
* I <3 OpenSimulator
2009-01-22 09:31:01 +00:00
Justin Clarke Casey 37fa677548 * refactor: Extract caps related code from scene and put into a region module
* No functional changes in this revision
2009-01-21 21:14:17 +00:00
Justin Clarke Casey d2d273aebe * minor: move connection success log message so that it doesn't get printed again if a duplicate use circuit code packet comes in 2009-01-21 18:46:44 +00:00
Justin Clarke Casey 22aeda3ba1 minor: find in existing senderUUID field for chat messages originating from a client 2009-01-21 17:56:25 +00:00
Teravus Ovares 68baf9096a * Another image packet edge case. Thanks nebadon for printing a log of it 2009-01-19 21:29:44 +00:00
Teravus Ovares 4823f2ae8e * Set SVN Properties 2009-01-19 18:33:25 +00:00
Teravus Ovares 8e01f75784 * Progressive texture patch + PriorityQueue put into the LLClient namespace.
* Updates LibOMV to r2362
2009-01-19 17:11:57 +00:00
Justin Clarke Casey eca6442bae * Rig up enough infrastructure to actually perform a successful 'standalone' teleport unit test with checks that the scene presence disappeared from sceneA and appeared in
sceneB
* However, I'm not convinced that the actual process in the test completely reflects reality, and a lot of stuff had to be rigged up (which should get resolved over time)
2009-01-16 21:56:13 +00:00
Justin Clarke Casey 093adb2113 * Add new unit test for simple teleport in a standalone.
* Does not yet check results.
2009-01-15 21:27:55 +00:00
Justin Clarke Casey 75ea84f3d2 * minor: Change around more debugging messages 2009-01-14 18:46:33 +00:00
Justin Clarke Casey 6ae1b80d20 * Do some log tweaking to better see incoming connection success (and failure) 2009-01-14 17:34:04 +00:00
Justin Clarke Casey 1e365df495 * minor: Stop friendship termination crashing the client thread if the friend to be terminated could not be found 2009-01-13 16:49:01 +00:00
Justin Clarke Casey efcf6ff095 * Extend current stub packet handler test into a really basic one that checks that a sent in packet ends up on the client queue ready for processing 2009-01-12 20:42:44 +00:00
Justin Clarke Casey ade107f04f * Separate starting a client thread into a separate Start() method (which matches the existing Stop() and Restart() methods) 2009-01-12 19:37:56 +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
MW e1eb1b2cfa a little bit more work on LLFileTransfer.cs, from over the christmas/new year period. Still not working/in use but hopefully I can finish it soon. 2009-01-12 10:16:33 +00:00
Justin Clarke Casey 7cd8748096 * minor: Put in stub LLPacketHandler testing code 2009-01-09 21:05:53 +00:00
Melanie Thielker 7c7ea57c5c Finish dwell sending, adding the forgotten method body.
Add UserInfo and a dummy reply to enable Hippo Viewer users to
disable IM logging (option was greyed out in OpenSim before)
2009-01-09 02:59:56 +00:00
Justin Clarke Casey 17f783457b * refactor: move code for sending a message to all users in a region to the DialogModule 2009-01-08 18:50:46 +00:00
Justin Clarke Casey a31792ee5c * prune and regrade log messages relating to client login and logout 2009-01-06 21:39:55 +00:00
Adam Frisby 3b0eb958a8 * Another minor GenericMessage fix - If we assume the method names are case-insensitive, we should process them as such. 2009-01-04 19:41:55 +00:00
Adam Frisby 00a0f4a286 * Added some information to HandleGenericMessage to indicate that it's not the packet that isnt being processed, but instead the method-type. 2009-01-04 19:39:17 +00:00
Adam Frisby f0864b5154 * Minor tweak to crash logger to copy ini with log if save-to-dir is on.
* Added BinaryGenericMessage handler for cases where GenericMessage isnt transmitting pure-utf8 characters.
2009-01-04 19:09:22 +00:00
Melanie Thielker 7beb8a5abb Plumb the remaining dwell packets 2009-01-03 20:45:33 +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
Melanie Thielker a7708413ee Plumb in dwell in a couple of places 2009-01-03 00:03:41 +00:00
Justin Clarke Casey a3af0e61eb * Add Nini.Config and System.Xml references to MockScene for Windows compilers 2009-01-02 20:11:20 +00:00
Jeff Ames 2be0f7a6f0 Update svn properties, minor formatting cleanup. 2008-12-30 01:08:07 +00:00
Melanie Thielker 23844a9073 Plumb the profile reply packets for picks, classifieds and notes 2008-12-25 20:28:13 +00:00
Melanie Thielker 3b6ffd9e41 Plumb yet another groups packet 2008-12-25 18:22:50 +00:00
Melanie Thielker 318de200bd Plumb in EventNotification* and EventGodDelete 2008-12-23 23:41:46 +00:00
Melanie Thielker fc053a6af8 Plumb in the 4 missing classified events and the 3 packet methods 2008-12-23 18:16:30 +00:00
Justin Clarke Casey cce1b096db * refactor: Replace part of SceneObjectPart with the identical sound playing code in the SoundModule 2008-12-23 17:54:13 +00:00
Teravus Ovares 119104e35b * Re-implement packet tracking in IClientAPI so we can see what's going on in the client network in the simstats manager. This makes packets in per second, packets out per second, and unacked bytes work again in the simulator stats section. 2008-12-21 00:11:54 +00:00
Justin Clarke Casey 899f2a80d7 minor: remove mono compiler warning 2008-12-19 19:50:46 +00:00
lbsa71 56f1b03cd0 * Added "show queues" command that shows throttling queues for all clients.
*** This only works for LLCLientView at the moment ***
2008-12-18 13:16:41 +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
Justin Clarke Casey 2108d328df * revert r7724 so that PresenceChildStatus() starts throwing NRE's again
* apparantly logout code relies on this happening in certain circumstances.  Really, the root issue needs to be investigated.
2008-12-17 19:12:56 +00:00
Melanie Thielker 7ef5a79fef Change the PacketQueue to use the stored size as well 2008-12-17 19:01:47 +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
Justin Clarke Casey ab77b22f0f * Only serialize packets once for the length calculation for throttle queues rather than twice 2008-12-17 17:33:57 +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
Justin Clarke Casey 72ff5322f5 * Replace manually zeroing with Array.Clear(). Thanks cmickeyb 2008-12-17 17:18:52 +00:00
Melanie Thielker 8e5fe0257c Mantis #2850
Applying the patch to reduce the load caused by the throttle loop even more
2008-12-17 17:05:12 +00:00
Justin Clarke Casey 2e79fd0f0c * minor: Minor documentation and small minor change on LLPacketThrottle to remove some unnecessary lines 2008-12-17 17:01:02 +00:00
Justin Clarke Casey b4680f653d * Implement 'Save Object Back to My Inventory'. On the Linden client this is in the Tools menu available when editing an object
* This facility allows you to save changes to an object that you've rezzed into a region back into their original inventory item without having to take a copy of the rezzed 
object.
2008-12-17 16:11:03 +00:00
Melanie Thielker a5343c5404 Add repecting the min and max values back in 2008-12-17 09:55:10 +00:00
Melanie Thielker e394e1c06f Remove a major bottleneck in throttling code. 2008-12-17 09:52:52 +00:00
Melanie Thielker 02a28a6992 Avoid checking the throttle limit for empty queues 2008-12-17 09:30:56 +00:00
MW 1110ee877f More work on moving Xfer file transfer handling code to the Client stack from the various region modules that it is currently in.
Still not enabled yet.
2008-12-15 21:46:57 +00:00
Justin Clarke Casey 41ad030a5a * minor: method documentation and miscellaneous tidy 2008-12-15 20:32:49 +00:00
Justin Clarke Casey 3b0db66b92 * Apply http://opensimulator.org/mantis/view.php?id=2775 with small tweaks
* This pushes an identifier for the OpenSim scene to the physics scene.  This allows log messages from the physics scene to identify which OpenSim scene they relate to.
* Thanks Gerhard
2008-12-15 18:39:54 +00:00
Melanie Thielker 008e1fe8df Plumb the TP-Sending packets 2008-12-14 05:49:07 +00:00
Charles Krinke e6eb571c1d Mantis#2725. Thank you kindly, Diva, for a patch that:
Adds missing protocol pieces for EstablishAgentCommunication
event which allows the client to activate CAPS and the EQ for 
child agents.
2008-12-14 02:17:12 +00:00
MW 40bbf886f2 more work on moving FileTransfer code to the clientstack.
Still not enabled.
2008-12-13 15:04:24 +00:00
Jeff Ames 8929bfc369 Add copyright headers. 2008-12-13 12:30:46 +00:00
Jeff Ames 4f9d5d955b Update svn properties. 2008-12-13 12:22:52 +00:00
MW e0765fa6c8 more work on moving FileTransfer code to the clientstack.
Although its still not enabled.
2008-12-12 22:20:13 +00:00
MW 6e07ef9cb9 Add OpenSim.Framework.IClientFileTransfer. 2008-12-12 21:17:49 +00:00
MW e9d905f48c Started to move xfer file transfer code to the LLClientStack, rather than having it in a region module (like it was).
Note:None of this is enabled yet.
2008-12-12 21:08:23 +00:00
Justin Clarke Casey 557567dcf8 * minor: remove some old logging messages 2008-12-09 16:16:16 +00:00
Homer Horwitz 6ab09bc139 Send the creation-date of items to the viewer. This fixes Mantis#2769. 2008-12-06 22:51:41 +00:00
Justin Clarke Casey 5ffbba9a8f * minor: Take out some of the test log output I accidentally left in a couple of commits ago 2008-12-04 21:06:25 +00:00
Justin Clarke Casey 38ca31b37a * Put in the code necessary to allow inventory transfer of whole folders (and their contents) between agents, not just single items
* However, this is not currently activated since it's not absolutely fully tested and there's a bug lurking in there to do with the sending of the BulkInventoryUpdate packets
2008-12-04 19:57:36 +00:00
Justin Clarke Casey 18ba6c3510 * minor: A few tiny bits of documentation and log message cleanup before starting something different 2008-12-01 20:28:00 +00:00
Jeff Ames 077314cdd3 Update svn properties. Add copyright header. Minor formatting cleanup. 2008-11-30 00:51:40 +00:00
Melanie Thielker ef4a80eeaf Should have tried with something other than attachments. Make normal prim
render again :)
2008-11-29 03:18:06 +00:00
Melanie Thielker 287c724b55 A try to better attachment crossing. 2008-11-29 01:33:10 +00:00
Teravus Ovares c9a5215d6d * Fixes Location == Location, and Location != Location 2008-11-28 20:37:21 +00:00
Justin Clarke Casey dfbec673a4 * simplify AddNewClient since making this root without using MakeRootAgent() no longer sets everything up properly 2008-11-28 20:11:17 +00:00
Teravus Ovares 414bf2aaf1 * The equals override of 'Location' is not working as expected. This caused sim restarts to fail because the test that searches for and shutsdown the UDP server listener for that region never found and shutdown the udp server. hence the error message, "only one listener on port".
* This is a high profile candidate for a unit test. (big)
2008-11-28 19:44:44 +00:00
Justin Clarke Casey df9b0e9e11 * refactor: Replace derez destiation magic numbers with an enumeration 2008-11-28 17:18:10 +00:00
Melanie Thielker d20a3c6e5a Cause attachment nibbles to be swapped in terse object updates, too.
This error may have been the root cause of the head attachment bug.
2008-11-27 22:30:54 +00:00
Justin Clarke Casey 8ba6b2b11a * minor: remove mono compiler warnings 2008-11-27 19:51:11 +00:00
Charles Krinke 921692a15f Thank you kindly, Nlin for a patch that:
Adds a new method to IClientAPI to allow adding message handlers 
for GenericMessages (of which "autopilot" is one). Part 2 adds a 
specific autopilot handler in ScenePresence.cs.
2) Removing unused variables and functions.
3) Simplifying the navigation logic in ScenePresence.cs. The 
original patch was somewhat complex because it included orientation
logic for a future enhancement of orienting the avatar to point 
towards the direction being walked. Currently this isn't working, 
though, so I removed the orientation code, which leaves just the 
smaller and hopefully simpler-to-understand movement code.
2008-11-27 05:16:47 +00:00
Justin Clarke Casey 7c2f8e2ee9 * Get rid of the phenomena where the avatar sometimes reverts to the stand animation when flying across borders
* Applies to both standalone and grid mode
* The slight retardation on border cross remains - this is a separate issue
2008-11-26 16:56:57 +00:00
Homer Horwitz 1148d9a11c Removing some direct console output for outputting ImprovedInstantMessage packets. 2008-11-22 17:42:23 +00:00
Melanie Thielker c71863d83e First stage group permissions plumbing 2008-11-22 01:58:36 +00:00
Melanie Thielker ba723a4cf6 Refactor: Scene.ExternalChecks -> Scene.Permissions. Also make all
the internals of the permissions module adapter sane
2008-11-21 22:14:57 +00:00
Justin Clarke Casey 915593bfbc * refactor: Rip out SOP inventory from the partial into a separate class
* SceneObjectPartInventory.cs isn't a particularly good name but it's probably not got a long life
* A proper inventory interface to follow
* Parallel changes for other inventory partial classes to follow at a later date
2008-11-21 21:16:42 +00:00
Jeff Ames ecac5c9c5a Update svn properties, minor formatting cleanup. 2008-11-21 18:44:48 +00:00
Melanie Thielker e9ad6f7913 Plumb in the list if user IDs to the land module to allow selection
of objects by owner name
2008-11-21 04:41:39 +00:00
Justin Clarke Casey b9c07730f5 * refactor: change some method names and doc in the physics plugin manager
* move the directory choice for plugins outside into RegionApplicationBase
2008-11-20 19:52:55 +00:00
Charles Krinke 164ed57ad3 Mantis#2638. Thank you kindly, Sacha Magne for a patch that:
Implementing "Play sound inworld". Currently a WIP .
2008-11-19 18:41:10 +00:00
Melanie Thielker f518ca7feb Reapply r7369 r7367 r7366 r7370 r7381. This brings it back up to the new
libOMV.
2008-11-19 06:25:34 +00:00
Melanie Thielker 3234472d62 Reverting the texture sending patch and the new libOMV. This makes this
release a direct descendant of the stable 7364, with all the features and
none of the issues.
This omits the following patch chain: r7383 r7382 r7381 r7377 r7375 r7373
r7372 r7370 r7369 r7368 r7367 r7366
2008-11-19 06:15:21 +00:00
Adam Frisby 434afaf717 * Added and removed debug information relating to client connections
* Minor client fixes
* Added the ability for a client to login without a UserProfile, allowing certain alternate clients to connect to the region.
2008-11-18 00:47:30 +00:00
Melanie Thielker 2b8915d679 Make newly created prims be the correct group 2008-11-17 23:43:46 +00:00
Justin Clarke Casey c25a0ea792 * Update libOMV to r2359. This is necessary for the progressive texture patch
* Update libopenjpeg as well for this patch.
* Appears to be okay on a very short sniff test
* Source code will be placed in opensim-libs shortly
2008-11-17 21:00:34 +00:00
Melanie Thielker 0a01826843 Change some comments that have been superseded 2008-11-17 18:16:08 +00:00
Justin Clarke Casey 558704be8b * Remove the TransferRequest and hip debugging console output that crept in recently 2008-11-17 16:14:23 +00:00
Melanie Thielker 4d23d22fb1 Remove a redundant parameter 2008-11-16 23:25:36 +00:00
Melanie Thielker 5e2e05a1c1 Megapatch. Completely remove the multiparameter IM methods. Remove the insecure
fromAgentSession field.
2008-11-16 22:04:01 +00:00
Melanie Thielker 27e557eb98 Introduces the message transfer module. It splits the transfer mechanics off
the IM module and makes it into a module of it's own, which can be used by
all other modules. Removes some ugly hacks. Refer to the IM module to see
how it's used. Also fixes the persistence issue (Mantis #2598)
2008-11-16 00:47:21 +00:00
Justin Clarke Casey 2bb4b45626 * Move test scene construction infrastructure methods to a separate class for future common use 2008-11-14 20:06:44 +00:00
Melanie Thielker d66f3993de Add group permissions to agent inventory.
Contains a migration. May contain nuts.
Please back up your inventory data store. This revision changes the interface
version!! No older regions can connect to these new UGAIM, and the new regions
can't connect to the old UGAIM. Fixes a long-standing issue of permissions loss
Currently persisted on MySQL only.
2008-11-14 18:54:38 +00:00
Teravus Ovares 3e4b094921 * Implements terrain raw upload. You can now upload your .raw terrain files using the Estate Tools.
* Could this be extended in the future to support .oar uploads too?  Only time will tell!
2008-11-14 14:42:00 +00:00
Melanie Thielker 4f91da2488 More groups plumbing 2008-11-14 05:18:39 +00:00
Justin Clarke Casey e2ab576572 * Stop locking the scene presences dictionary for the entire agent crossing part of the login sequence
* This may alleviate a little the freezing experienced by existing avatars when a new client logs in
* Race condition risks look minimal since one wouldn't expect another thread to start fiddling with that presence
2008-11-12 18:12:18 +00:00
Melanie Thielker 47a5d71b7e Prevent pieces from other people's HUDs from displaying at the center of
every user's HUD
2008-11-11 19:08:59 +00:00
Adam Frisby 1493f7349f * Minor typing fixes in AssetCache - now uses base types for nearly everything.
* Code Cleanliness Fixes in LLClientView
* Using field instead of local variable for handlerUpdatePrimGroupRotation (if you notice any new oddities with prim group rotation after this patch, please mantis)
2008-11-11 17:48:36 +00:00
Mike Mazur 32b9975468 If the proxy is on, we need to ignore the extra 6 bytes in the packet. 2008-11-11 03:41:28 +00:00
Melanie Thielker 302d65569f Allow gods to terraform without limits. Respect the Allow Others To
Terraform flag in land.
2008-11-11 01:47:40 +00:00
Jeff Ames 5276c4bdf8 Update svn properties, minor formatting cleanup. 2008-11-11 00:52:47 +00:00
Teravus Ovares d145700115 * Commit allows downloading of the .raw terrain from the estate tools.
* Implements the SendInitiateDownload method in IClientAPI 
* Uses the ITerrainModule Interface to write a terrain file to disk then uses a FileStream to read the binary file from the disk and put it in a byte array. and save to the xFer list.
* It then tells the client to download the file and the client initiates an Xfer request.
2008-11-10 23:56:58 +00:00
Johan Berntsson 22b70495ab The region proxy for the load balancer module works again. The incoming proxy messages were not properly decoded. 2008-11-10 09:50:05 +00:00
Melanie Thielker 298ab2f9cb Prevent updates about other people's HUD objects being sent 2008-11-09 22:52:00 +00:00
Adam Frisby c43e466301 * Enabled GTCache for AssetCache
* Items will now be locally cached for only 24 hours from last access. (Rather than until restart)
* Caveat: Implementing the new caching mechanism means statistics gathering on AssetCache is no longer functional. (Justin - you might want to take a look and see if you can somehow get that back and running if you still need it)
2008-11-09 15:00:26 +00:00
Jeff Ames 8da726c3a8 Update svn properties. Add copyright headers. Minor formatting cleanup. 2008-11-09 01:31:38 +00:00