Commit Graph

1788 Commits (e474c19c40a76c3e4099f9933edae9aa13960c39)

Author SHA1 Message Date
Justin Clark-Casey (justincc) 3a64522267 Minor formatting changes and commented out log lines for future debugging of image manager (udp texture fetch). No significant functional changes. 2012-01-04 21:40:15 +00:00
Justin Clark-Casey (justincc) 82df5de5cf Remove the pointless LLClientView.m_imageManager null check.
Despite the code comments we never actually null it.
2012-01-04 16:15:05 +00:00
Justin Clark-Casey (justincc) fac8c25851 Reduce accessibility of some J2KImage/LLImageManager properties and methods to reduce potential code complexity and make code reading easier. 2012-01-02 21:31:42 +00:00
Justin Clark-Casey (justincc) 014a86c26b Adding commented out log messages and some minor formatting for future bug hunting. No functional changes. 2012-01-02 19:46:30 +00:00
Diva Canto b6cfe15c7c HG: more / love for Xmas 2011-12-24 07:44:26 -08:00
Justin Clark-Casey (justincc) 2899de1a5c Stop unnecessarily sending the TextureEntry in client avatar updates.
As far as I know, viewers don't use this mechanism to recieve new TextureEntry data for avatars.  This is done via the AvatarAppearance packet instead.
Tested this back to viewer 1.23.
Replacing with Utils.EmptyBytes since converting the texture entry to bytes on each AvatarUpdate (or which there are many) is not cost-free.
2011-12-19 19:19:05 +00:00
Justin Clark-Casey (justincc) 0b91ec8dd2 Migrate detailed "appearance show" report generation up to AvatarFactoryModule from AppearanceInfoModule so that it can be used in debug (inactive).
Further filters "debug packet <level>" to exclused [Request]ObjectPropertiesFamily if level is below 25.
Adjust some method doc
Minor changes to some logging messages.
2011-12-19 18:58:05 +00:00
Justin Clark-Casey (justincc) a3a17e929e Stop generating client flags when we send out full object updates.
These were entirely unused.
2011-12-16 23:20:12 +00:00
Justin Clark-Casey (justincc) b242ceda1e In AvatarFactoryModule.SetApperance(), perform ValidateBakedTextureCache() in the same thread rather than on another one.
The caller is already an async thread from LLClientView so this doesn't hold up the client.
However, launching on a separate thread does remove the effect of m_setAppearanceLock
This was potentially allowing two different SetAppearance threads to interfere with each other, though this probably rarely happens, if at all.
2011-12-13 20:42:39 +00:00
Melanie 3a91085ac2 Implement handler for TeleportCancel inbound packet 2011-12-10 15:17:34 +00:00
Justin Clark-Casey (justincc) af3cd00048 Get rid of IScene.PresenceChildStatus() which always had to execute a lookup in favour of IClientAPI.ISceneAgent.IsChildAgent instead. 2011-12-09 23:07:53 +00:00
Justin Clark-Casey (justincc) 50eebb5cba Don't reply with an ack packet if the client is not authorized. 2011-12-08 22:00:59 +00:00
Justin Clark-Casey (justincc) 32d0ef89c6 Extend TestAddClient() to check that the first packet received is an ack packet 2011-12-08 21:45:02 +00:00
Justin Clark-Casey (justincc) 14e407aff3 Add OpenSim.Region.ClientStack.LindenUDP.Tests.dll back into the test suite 2011-12-08 20:55:38 +00:00
Justin Clark-Casey (justincc) bc13855e64 Reactivate BasicCircuitTests.TestAddClient()
This checks that the initial UseCircuitCode packet is handled correctly for a normal client login.
2011-12-08 20:52:34 +00:00
Justin Clark-Casey (justincc) 0e265889dd Remove unnecessary AgentCircuitData null check from Scene.AddNewClient().
The only caller is the LLUDP stack and this has to validate the UDP circuit itself, so we know that it exists.
This allows us to eliminate another null check elsewhere and simplifies the method contract
2011-12-08 19:25:24 +00:00
Justin Clark-Casey (justincc) f61e54892f On a new client circuit, send the initial reply ack to let the client know it's live before sending other data.
This means that avatar/appearance data of other avatars and scene objects for a client will be sent after the ack rather than possibly before.
This may stop some avatars appearing grey on login.
This introduces a new OpenSim.Framework.ISceneAgent to accompany the existing OpenSim.Framework.ISceneObject and ISceneEntity
This allows IClientAPI to handle this as it can't reference OpenSim.Region.Framework.Interfaces
2011-12-08 18:34:23 +00:00
Justin Clark-Casey (justincc) e6272b8d56 Stop also adding an ordinary http handler when we set up a poll http handler.
It appears that this is entirely unnecessary since the poll http handlers are dealt with on a separate code path.
2011-12-07 12:28:42 +00:00
Justin Clark-Casey (justincc) 8e542cfa03 Stop accidentally setting up the UploadTexture caps handler with the same url for all users
This meant that if a user exited the region, the UploadTexture handler would be effectively removed for everyone, causing subsequent failures.
This hopefully resolves the recent UploadTexture LLSD problems
This was a regression in 5640f2e (Thu Dec 1 23:24:15 2011 +0000)
2011-12-06 21:42:56 +00:00
Justin Clark-Casey (justincc) 4567555c49 Implement IOSHttpRequest and IOSHttpResponse http interfaces and use instead of OSHttpRequest/OSHttpResponse.
This is required for the substitution of different HTTP servers or the newer HttpServer.dll without having to commit to a particular implementation.
This is also required to write regression tests that involve the HTTP layer.
If you need to recompile, all you need to do is replace OSHttpRequest/OSHttpResponse references with IOSHttpRequest/IOSHttpResponse.
2011-12-05 20:44:20 +00:00
Justin Clark-Casey (justincc) 5460f2e035 refactor: Separate the upload baked texture handler out from BunchOfCaps 2011-12-01 23:24:15 +00:00
Justin Clark-Casey (justincc) fa63054c4f On "show caps", stop excluding the seed cap but do exclude it elsewhere 2011-11-29 20:37:03 +00:00
Justin Clark-Casey (justincc) 658d02b5e9 Improve some of the debug help messages 2011-11-29 16:56:31 +00:00
Justin Clark-Casey (justincc) ff0d020007 Correct mistake in "debug eq" help 2011-11-29 16:18:14 +00:00
Justin Clark-Casey (justincc) bafea2282a Rip out unused Scene.HandleFetchInventoryDescendentsCAPS().
This has been handled by WebFetchInvDescHandler.Fetch() for some time.
2011-11-26 01:39:23 +00:00
Justin Clark-Casey (justincc) 11c19b0d2e Use the same web fetch handler for every request from every avatar, since it contains no instance code 2011-11-26 00:29:01 +00:00
Justin Clark-Casey (justincc) 95a686dbf5 Fix config so that you can have both WebFetchInventoryDescendents and FetchInvnetoryDescendents2 caps active at once 2011-11-25 23:45:29 +00:00
Justin Clark-Casey (justincc) 5b4fe23f7f Resolve error where an unknown asset type would cause the fetch inventory descendents cap to fail.
Introduced just a few commits ago in 0688861
2011-11-25 23:43:57 +00:00
Justin Clark-Casey (justincc) 676d32974a Implement the FetchInventoryDescendents2 capability using the same code as WebFetchInventoryDescendents.
Enabling this by setting Cap_FetchInventoryDescendents2 = "localhost" in the [ClientStack.LindenCaps] section of OpenSim.ini downloads inventory via http rather than udp in later viewers.
2011-11-25 22:46:42 +00:00
Justin Clark-Casey (justincc) 8c82ff16ad Fix WebFetchInventoryDescendents cap to use Utils.AssetTypeTostring/InventoryTypeToString to convert types to strings
These cover a wider range of types.
2011-11-25 21:54:31 +00:00
Justin Clark-Casey (justincc) a58f5b2f66 When setting packet level logging via "debug packet", apply to all clients, not just root ones.
Also adds scene name and client type (root|child) to logged information.
2011-11-24 22:08:34 +00:00
Justin Clark-Casey (justincc) 0a60e9537f comment out a noisy log line I accidentally left in from the last commit 2011-11-24 21:30:40 +00:00
Justin Clark-Casey (justincc) 63c137820b Stop passing a request handler to the initial caps.RegisterHandler in EventQueueGetModule since this is immediatley replaced by a poll server handler.
This allows us to comment out a bunch of code and simplify the codebase and readability.
2011-11-24 21:27:35 +00:00
Justin Clark-Casey (justincc) 0174e326e3 Add a "debug eq" console command for debugging.
This will log outgoing event queue message names if turned on.
2011-11-24 20:27:11 +00:00
Justin Clark-Casey (justincc) ff36a1bc7b If a friends identifier which is too short is given to HGFriendsModule.GetOnlineFriends() then spit out a warning rather than failing on the String.Substring().
This is to progress http://opensimulator.org/mantis/view.php?id=5789
2011-11-14 16:06:06 +00:00
Justin Clark-Casey (justincc) ce8441132e Restore sending of OutPacket() for object kills removed in commit c7dd7b1.
OutPacket() must be called within the m_killRecord lock.  Otherwise the following event sequence is possible
1) LLClientView.ProcessEntityUpdates() passes the kill record check for a particular part suspends before OutPacket()
2) Another thread calls LLClientView.SendKillObject() to delete the same part and modifies the kill record
3) The same thread places the kill packet on the Task queue.
4) The earlier thread resumes and places the update packet on the Task queue after the kill packet.
This results in a ghost part in the sim that only goes away after client relog.
This commit also removes the unnecessary m_entityUpdates.SyncRoot locking in SendKillObject.
2011-11-11 22:37:57 +00:00
Melanie c7dd7b13a2 Convert SendKillObject to take a list of uint rather than sending one
packet per prim. More to come as we change to make use of this.
2011-11-06 20:38:07 +00:00
Dan Lake e2c51a977d Changes UpdateFlag in SOP to an enumeration of NONE, TERSE and FULL.
UpdateFlag is now referenced/used only within SOP and SOG. Outsiders are
using ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule on
SOP consistently now. Also started working toward eliminating those
calls to ScheduleFullUpdate, ScheduleTerseUpdate or ClearUpdateSchedule
from outside SOP in favor of just setting properties on SOP and let SOP
decide if an update should be scheduled. This consolidates the update
policy within SOP and the client rather than everywhere that makes
changes to SOP. Some places forget to call update while others call it
multiple times, "just to be sure".

UpdateFlag and Schedule*Update will both be made private shortly.

UpdateFlag is intended to be transient and internal to SOP so it has
been removed from XML serializer for SOPs.
2011-11-02 14:59:00 -07:00
Dan Lake 7c8bfac11b Removed redundant SceneContents property from Scene. It's the same as SceneGraph property. 2011-11-01 17:20:12 -07:00
Justin Clark-Casey (justincc) 5ae8de3c00 Stop setting _position as well as m_taint_position in ODECharacter.Position
setting position at the same time as taint appears to undermine the whole purpose of taint
testing doesn't reveal any obvious regressions in doing this
2011-10-29 01:39:48 +01:00
Justin Clark-Casey (justincc) e210d95821 Don't blow our brains out if LLClientView.BulkInventoryUpdate() is wrongly passed a null node reference.
Addresses worst aspect of http://opensimulator.org/mantis/view.php?id=5752
2011-10-27 02:50:58 +01:00
Justin Clark-Casey (justincc) 8a0a78cbcc Make OpenSim.Framework.Servers.HttpServer rely on OpenSim.Framework instead of the other way around.
This is necessary so that code in HttpServer can use framework facilities such as the thread watchdog for monitoring purposes.
Doing this shuffle meant that MainServer was moved into OpenSim/Framework/Servers
Also had to make OpenSim.Framework.Console rely on OpenSim.Framework rather than the other way around since it in turn relies on HttpServer
MainConsole and some new interfaces had to be moved into OpenSim/Framework to allow this.  This can be reverted if parts of OpenSim.Framework stop relying on console presence (cheifly RegionInfo)
2011-10-25 20:24:21 +01:00
Justin Clark-Casey (justincc) 9ec672c70b Fix bugs in EventQueueGetModule.ClientClosed() and BaseHttpServer.RemovePollServerHTTPHandler() that stopped existing code in ClientClosed() from actually tearing down the poll handler
Actually doing the tear down appear to have no ill effects with region crossing and teleport.
2011-10-24 23:16:03 +01:00
Justin Clark-Casey (justincc) 79d5bc9beb separate out future common setup code from EventQueueTests.AddForClient() 2011-10-24 22:29:13 +01:00
Justin Clark-Casey (justincc) e28e2d24c7 Add new EventQueueTests with basic test to check that adding a client registers an http poll 2011-10-24 22:23:41 +01:00
Justin Clark-Casey (justincc) 120114e96b refactor: Make IClientAPI.DebugPacketFormat a property rather than a setter without a getter 2011-10-17 20:50:29 +01:00
Justin Clark-Casey (justincc) 96ff2c63ed Add avatar names to debug packet output 2011-10-17 20:37:01 +01:00
Justin Clark-Casey (justincc) aa19ccf65c refactor: rename IClientAPI.SendPrimUpdate() to SendEntityUpdate() since it sends entity updates (including presence ones), not just prims. 2011-10-14 01:45:46 +01:00
Justin Clark-Casey (justincc) 20da04fd0c More method doc and formatting changes. Makes DestroyOdeStructures() private 2011-10-13 21:42:24 +01:00
Justin Clark-Casey (justincc) 631d5e16ef Get rid of some traces of the old pre-ROBUST grid architecture config 2011-10-12 21:51:34 +01:00
Justin Clark-Casey (justincc) f5f7ca47ea Bring LindenUDP.Tests back from the dead. No tests are running.
Code drift means that most of this stuff doesn't compile but the structure is still useful.
2011-10-12 21:31:22 +01:00
Justin Clark-Casey (justincc) c5826d589a minor: insert some commented out log lines which are a blunt but useful instrument to see packet expiry and received acks 2011-10-12 19:35:40 +01:00
Justin Clark-Casey (justincc) f9ffd2538f Improve some method doc for LLUDPClient, LLUDPServer and UnackedPacketCollection 2011-10-12 19:22:30 +01:00
Justin Clark-Casey (justincc) 34026887fe Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2011-10-03 23:26:52 +01:00
Justin Clark-Casey (justincc) 37ae6451f9 Remove vestigal RegionStatus.SlaveScene.
This appears to be code clutter since the code that uses this has long gone.
2011-10-03 23:25:09 +01:00
Dan Lake e77c919290 Remove usage of Linden packet types from inside Attachments Module and interface 2011-10-03 11:55:54 -07:00
Justin Clark-Casey (justincc) 839c1cdcc4 Improve locking when access queue in EventQueueGetModule 2011-09-24 01:10:23 +01:00
Justin Clark-Casey (justincc) d358125cac Reinstate option to land an npc when it reaches a target.
This is moved into ScenePresence for now as a general facility
2011-09-22 00:16:05 +01:00
Justin Clark-Casey (justincc) de19dc3024 refactor: rename SOG/SOP.GetProperties() to SendPropertiesToClient() to reflect what it actually does
This also makes it consistent with some other methods that send data to the client.
2011-09-15 18:58:58 +01:00
Justin Clark-Casey (justincc) 7eca929686 Eliminate pointless checks of SOG.RootPart != null
It's never possible for SOG to have no RootPart, except in the first few picosends of the big bang when it's pulled from region persistence or deserialized
2011-09-01 02:11:00 +01:00
Justin Clark-Casey (justincc) 095b3e5756 Remove pointless cluttering SOP.ParentGroup != null checks.
The only times when ParentGroup might be null is during regression tests (which might not be a valid thing) and when scene objects are being constructed from the database.
At all other times it's not possible for a SOP not to have a SOG parent.
2011-09-01 01:22:28 +01:00
Justin Clark-Casey (justincc) 083ba72b28 Fix a bug where the non-root parts of rezzed objects that had previously been attachments were sending their old attachment values to the client.
The root part state is the canonical value, so always send that instead.
Sending conflicting attachments states for non-root parts of a rezzed object is enough to crash the client.
Fixes http://opensimulator.org/mantis/view.php?id=5664.
Many thanks to mewtwo0641 for some fantastic qa work on this one.
2011-08-31 23:33:01 +01:00
Justin Clark-Casey (justincc) be357f8fee Fix bug in persisting saved appearances for npcs
Assets have to be marked non-local as well as non-temporary to persist.  This is now done.
Hopefully addresses http://opensimulator.org/mantis/view.php?id=5660
2011-08-30 01:58:32 +01:00
Justin Clark-Casey (justincc) 33a894f3d2 refactor: move SOP.IsAttachment and AttachmentPoint up into SOG to avoid pointless duplication of identical values 2011-08-27 00:15:21 +01:00
Justin Clark-Casey (justincc) 4b4c5e69e5 Remove forcing of phantom on ground attached objects - attachments can be both non-phantom and flagged as physical.
As per Melanie
2011-08-24 22:45:51 +01:00
Justin Clark-Casey (justincc) 940a248c3d minor: comment out simulator features log line 2011-08-22 22:44:49 +01:00
Justin Clark-Casey (justincc) 7cf4bb5256 Add ISimulatorFeaturesModule so that other modules can register features in addition to the hardcoded ones. 2011-08-22 22:13:07 +01:00
Justin Clark-Casey (justincc) c1a34cd8da Don't try to save changed attachment states when an NPC with attachments is removed from the scene.
This is done by introducing a PresenceType enum into ScenePresence which currently has two values, User and Npc.
This seems better than a SaveAttachments flag in terms of code comprehension, though I'm still slightly uneasy about introducing these semantics to core objects
2011-08-18 00:53:05 +01:00
Justin Clark-Casey (justincc) 8d866ae8c3 minor: remove some mono compiler warnings 2011-08-16 21:45:01 +01:00
Justin Clark-Casey (justincc) cace6eaa8a comment out some of the currently less useful debug log messages 2011-08-11 02:06:32 +01:00
Justin Clark-Casey (justincc) 5d6c9644fa early code to allow scripts to force npcs not to fly when moving to target
this is to allow walking on prims.  it will be up to the script writer to be sure that there is a continuous path.
currently implemented in osNpcMoveToTarget(), but none of this is final.
2011-08-10 01:47:37 +01:00
Justin Clark-Casey (justincc) 4cb8d6379d Stop trying to deregister caps or close child agents when an NPC is removed 2011-08-10 00:59:31 +01:00
Justin Clark-Casey (justincc) 92e96d394a When an NPC is created, stop telling neighbouring regions to expect a child agent 2011-08-09 23:11:07 +01:00
Justin Clark-Casey (justincc) f999acd095 minor: remove some mono compiler warnings 2011-08-04 01:46:34 +01:00
Justin Clark-Casey (justincc) 2964467708 get rid of vestigal move to parameters 2011-08-03 22:11:05 +01:00
Justin Clark-Casey (justincc) c122489e09 Partially fix autopilot/go here
This now works again except that it requires a click or avatar mvmt to get going
This is because the ScenePresence.HandleAgentUpdate() method doesn't trigger until the client does something significant, at which point autopilot takes over.
Even clicking is enough to trigger.
This will be improved presently.
2011-08-02 23:41:12 +01:00
Justin Clark-Casey (justincc) 9fc59e2bf2 minor: remove some mono compiler warnings 2011-07-30 03:19:00 +01:00
Melanie c4ffcd4b7d Ensure that packet headers get parsed correctly 2011-07-27 09:12:00 +01:00
Melanie 4cdc8806fb Fix LLTextBox to work with the updated libOMV 2011-07-23 11:40:38 +01:00
Justin Clark-Casey (justincc) 62325829ec comment out all kinds of debugging guff 2011-07-19 05:14:58 +01:00
Justin Clark-Casey (justincc) 7c468cda36 Stop undo of just the root prim position in the linkset from shifting the whole linkset.
However, what happens now is that undo just doesn't do anything when the root prim is selected on its own.  This requires more code than just fiddling with undo states.
2011-07-19 03:38:22 +01:00
Justin Clark-Casey (justincc) c94dc95844 fix undo when resizing of non-root individual prims in a linkset
undo resize, rotation and position still needs fixing when only editing root prim of a linkset
2011-07-19 03:27:16 +01:00
Justin Clark-Casey (justincc) 430a4aeba8 Fix undo for resizing linksets
This involves implementing a boolean in UndoState to signal whether the undo needs to be done for an entire group/linkset or just a single prim
Resizing individual components of linksets is still dodgy.
Resizing still has to be down twice, since for some reason the client is sending two multiobjectupdate packets on every resize except the very first.  This applies to single prims and linksets.  Need to look into this.
2011-07-19 03:01:54 +01:00
Justin Clark-Casey (justincc) 6fc74b36d1 Make various tweaks to undo code in an effort to get things working better.
Undo rotation and position appear to be working.
Resizing a single prim appears to be working, though the undo has to be done twice.
Resizing a group of prims still does not work properly - possibly because in the UndoState we don't store a knowledge of when we're resizing a whole group rather than individual prims.
This needs to be addressed.
2011-07-18 04:54:21 +01:00
Justin Clark-Casey (justincc) df2a59d31b refactor: make SceneObjectGroup.GroupScale() a property rather than a mehod 2011-07-16 03:30:14 +01:00
Justin Clark-Casey (justincc) a9ba9d4a9e change async parameter name in AddLocalPacketHandler since it becomes a reserved keyword in .net 5
Also adds some method doc.
2011-07-15 23:51:55 +01:00
Justin Clark-Casey (justincc) 3e5b2d52ff minor: method doc for baked texture uploading 2011-07-15 22:58:29 +01:00
Justin Clark-Casey (justincc) dbd954d701 Fix permissions problem where newly uploaded meshes rezzed from inventory could not be copied by owner. 2011-07-11 22:56:14 +01:00
Justin Clark-Casey (justincc) 5e8900dfd0 minor: code tidy and inserted log lines for future use.
Unable to get to the bottom of why resizing a mesh fails to properly reset the physics proxy, when toggling phantom does
After a mesh is generated, the existing sculptdata is set to zero in PrimitiveBaseShape to save memory
When phantom is toggled, the sculptdata is regenerated before remeshing.
But on resize, the sculptdata is not regenerated.
So clearly, resetting sculptdata is possible, but haven't quite been able to pin down how this is being done when phantom is toggled.
2011-07-09 00:35:30 +01:00
Justin Clark-Casey (justincc) 5700c582ba refactor: rename bool returning GetAgentInventoryItem() to CanGetAgentInventoryItem() to improve code readability 2011-07-08 22:28:17 +01:00
Justin Clark-Casey (justincc) 3bda7711b3 Switch the MeshUploadFlag CAP module on and off with the existing config AllowMeshUpload flag in [Mesh] (in OpenSimDefaults.ini)
Default is on.
2011-07-07 23:49:19 +01:00
Justin Clark-Casey (justincc) 2fbc98fa5c Make MeshUploadFlagModule non-shared rather than shared (since each scene needs its own cap) 2011-07-07 23:37:23 +01:00
Michael Cerquoni aka Nebadon Izumi 281e80ccf3 add MeshUploadFlag capability fixed mesh upload with latest mesh viewer thank you dahlia and lkalif for helping to make this happen! 2011-07-07 03:30:37 -07:00
Justin Clark-Casey (justincc) 1a0a9d2290 Implement the latest mesh mechanism so that rezzing the uploaded mesh now works again.
Many thanks to the aurora project for pioneering this.
This code is almost certainly not bug free, but it does at least appear to handle simple meshes (except when the viewer crashes - but it is beta!).
2011-06-24 21:54:01 +01:00
Justin Clark-Casey (justincc) 37a7c16734 minor: method documentation 2011-06-24 21:01:48 +01:00
Diva Canto 822b9e085f Added SimulatorFeatures capability. Thanks Aurora devs for the bootstrap on the contents of the response.
Changed the experimental capability introduced a couple of commits ago: now sending that extra information as part of the response in the SimulatorFeatures cap.
2011-06-13 10:21:29 -07:00
Diva Canto ab11835aeb Same processing of the "/" in the MapImageService Cap as the one in the login service. 2011-06-13 07:59:28 -07:00
Diva Canto 0e4db3ca39 Added experimental new capability URL called MapImageService meant to work with Kokua viewer if devs are willing to do it. 2011-06-13 07:56:52 -07:00
Justin Clark-Casey (justincc) b5518dc906 minor: Add some commented out destructor logging messages for potential future use.
At the moment, client and scene objects are being garbage collected as expected, at least in simple scenarios.
2011-06-10 20:40:14 +01:00
Diva Canto 623706d988 HG Landmarks bug fix: pull landmark asset data from user's asset server when user is traveling. 2011-06-03 11:33:44 -07:00
Diva Canto e33cedfd42 HG Landmarks now working. 2011-06-03 10:26:58 -07:00
Justin Clark-Casey (justincc) c67fa72d56 When sending an LLUDP MoneyBalanceReply message, fill out the transaction item description even though there is none.
This is to deal with a problem in libomv where calling ToBytes() without this crashes because of an ItemDescription.Lnegth dereference.
2011-05-31 19:57:08 +01:00
Justin Clark-Casey (justincc) 8129e64e2a Fill in the new OwnerData field in the LLUDP ScriptDialog message.
If we don't do this then viewer 2.8 crashes.
Resolves http://opensimulator.org/mantis/view.php?id=5510
2011-05-31 19:25:01 +01:00
Justin Clark-Casey (justincc) 5f9edd195c Fix broken inventory links on viewer 2.
It appears that if the viewer requests a folder containing links, we must also send the folders that contain the link targets first.
This was tested with Kokua 0.1.0 WIP though I predict it will also work with other viewer 2s
2011-05-13 03:24:19 +01:00
Diva Canto 8a5f6dc7a5 Fixes gray tiles on map search for viewers 1. 2011-05-09 10:25:42 -07:00
Diva Canto c0a69bfaab The map is seriously broken. This doesn't fix it, but at least provides one more piece of data that seems to be required -- agent flags, which seem to be different in Viewer 2. WARNING: changes IClientAPI. 2011-05-08 22:50:04 -07:00
Diva Canto 74e981e796 One more bug fix concerning library items that weren't being copied to user's inventory. Also commented verbose debug message. 2011-05-06 09:56:27 -07:00
BlueWall 8ca7938753 Adding ssl support
Adding ssl support for "Out of Band" applications such as the remote
	admin module or Robust services
2011-05-05 19:56:54 -04:00
Diva Canto e8944d6c31 Test m_Enabled on RemoveRegion. 2011-05-04 20:40:25 -07:00
Diva Canto ac9697edbe Fixed: EventQueueGet and other caps were being wrongly deregistered. Also CapabilitiesModule was being instantiated twice (damn Mono.Addins). 2011-05-02 19:45:47 -07:00
Diva Canto 883f21dd02 WebFetchInventoryDescendents working. Tested with robust. 2011-05-02 14:33:34 -07:00
Diva Canto aba9ffdbd0 Refactored the GetMesh module into a handler and a module, to be the same as GetTexture. 2011-05-02 11:56:40 -07:00
Diva Canto 10180760b7 Works! 2011-05-02 08:48:55 -07:00
Diva Canto 2d21052fa3 Start to drill down on GetTexture. Read the config and do different things. 2011-05-01 19:09:08 -07:00
Diva Canto f79400e94c Broke down Caps.cs into a generic Caps object that simply registers/unregisters capabilities and a specific bunch of capability implementations in Linden space called BunchOfCaps.
Renamed a few methods that were misnomers.
Compiles but doesn't work.
2011-05-01 18:22:53 -07:00
Diva Canto 275046cf02 Change GetTextureModule.cs to conform to the new IRegion module interface. NOTHING OF THIS WORKS. Compiles. 2011-05-01 12:03:00 -07:00
Diva Canto 126d2adeba Move CapabilitiesModule back to CoreModules. This one belongs there. 2011-05-01 12:02:07 -07:00
Diva Canto 6b2b036387 Added OpenSim.Capabilities.Handlers. For the moment it has only the GetTexture handler. The region module in Linden space uses it. WARNING: nothing of this works yet, it just compiles. 2011-05-01 09:08:18 -07:00
Diva Canto e3c27d8527 Nope, that didn't feel right. Moving all those modules to Linden space. 2011-04-30 13:24:25 -07:00
Diva Canto d8ee0cbe1c First stab at cleaning up Caps. Compiles. Untested. 2011-04-30 09:24:15 -07:00
Diva Canto 549dc5aeb9 Eliminated sAgentCircuitData, a data structure that has been obsolete for quite some time. 2011-04-28 08:58:04 -07:00
Mic Bowman 36fef21e52 Merge branch 'master' into queuetest 2011-04-26 08:42:21 -07:00
dahlia 037373b825 recover from unhandled exception from bad rotation data while processing entity updates in LLClientView.cs 2011-04-25 17:11:54 -07:00
Mic Bowman b9bca893ef Removed debug message in the token bucket code 2011-04-25 16:13:16 -07:00
Mic Bowman 13f141a4d5 Fix the totals shown by show throttle 2011-04-25 15:36:59 -07:00
Mic Bowman 77ab7ce084 Fixed the transmission of throttles from root agent to child
agents. Child throttles are based on the number of child agents
known to the root and at least 1/4 of the throttle given to
the root.
2011-04-25 15:11:29 -07:00
Mic Bowman 024c12abc3 Cleaned up various configuration options. Removed the category throttle
limits because the only ones used now are the defaults (which are overwritten
by the client throttles anyway). Updated the default rates to correspond to
about 350kbps.

Also added a configuration to disable adaptive throttle. The default
is the previous behavior (no adaptation).
2011-04-25 10:44:41 -07:00
Mic Bowman 08e58e7ca6 Set the initial rate for the adaptive throttle to 160Kpbs
or about 15 packets per second.
2011-04-22 14:02:34 -07:00
Mic Bowman 3534f4492a Various clean ups. Removed some debugging code. Added a new "show pqueues"
command to look at the entity update priority queue. Added a "name" parameter
to show queues, show pqueues and show throttles to look at data for a specific
user.
2011-04-22 14:01:12 -07:00
Mic Bowman 0897647709 Merge branch 'queuetest' of ssh://opensimulator.org/var/git/opensim into queuetest 2011-04-21 15:41:15 -07:00
Mic Bowman c5159ad8d0 Add some locking on the child list for the token bucket
hiearchy. A few other cosmetic changes.
2011-04-21 15:40:38 -07:00
Dan Lake 7f28dd4b31 Refactor UnackedPacketCollection so ProcessQueues will handle Adds, Acks, and Removes in that order. 2011-04-21 15:40:32 -07:00
Dan Lake 3640d0204f Added ability to remove unacked packet from UnackedPacketCollection without an acknowledgement from the network. This prevents RTT and throttles from being updated as they would when an ACK is actually received. Also fixed stats logging for unacked bytes and resent packets in this case. 2011-04-21 01:51:08 -07:00
Dan Lake b5ab33b5e1 bug fix. Now when an unacked update packet is handled through ResendPrimUpdates, it is removed from the UnackedPacketCollection. 2011-04-20 23:08:51 -07:00
Mic Bowman 7759bda833 Added an "immediate" queue to the priority queue. This is
per Melanie's very good suggestion. The immediate queue is
serviced completely before all others, making it a very good
place to put avatar updates & attachments.

Moved the priority queue out of the LLUDP directory and
into the framework. It is now a fairly general utility.
2011-04-20 21:58:49 -07:00
Mic Bowman 2b737c9cc2 Adds the first pass at an adaptive throttle to slow start new
clients. If the sent packets are ack'ed successfully the throttle
will open quickly up to the maximum specified by the client and/or
the sims client throttle.

This still needs a lot of adjustment to get the rates correct.
2011-04-20 16:23:33 -07:00
Mic Bowman 82de87ce99 Converted the property request queue to use the same retransmission
mechanism as the entity update queues.
2011-04-19 11:22:04 -07:00
Dan Lake 08d8a3e580 Requeue unacknowledged entity updates rather than resend then "as is".
Often, by the time the UDPServer realizes that an entity update packet
has not been acknowledged, there is a newer update for the same entity
already queued up or there is a higher priority update that should be
sent first. This patch eliminates 1:1 packet resends for unacked entity
update packets. Insteawd, unacked update packets are decomposed into the
original entity updates and those updates are placed back into the
priority queues based on their new priority but the original update
timestamp. This will generally place them at the head of the line to be
put back on the wire as a new outgoing packet but prevents the resend
queue from filling up with multiple stale updates for the same entity.
This new approach takes advantage of the UDP nature of the Linden protocol
in that the intent of a reliable update packet is that if it goes
unacknowledge, SOMETHING has to happen to get the update to the client.
We are simply making sure that we are resending current object state
rather than stale object state.

Additionally, this patch includes a generalized callback mechanism so
that any caller can specify their own method to call when a packet
expires without being acknowledged. We use this mechanism to requeue
update packets and otherwise use the UDPServer default method of just
putting expired packets in the resend queue.
2011-04-19 08:10:01 -07:00
Mic Bowman 3e0e1057ac Remove the call to remove tokens from the parent. Under heavy load
this appears to cause problems with the system timer resolution.
This caused a problem with tokens going into the root throttle as
bursts leading to some starvation.

Also changed EnqueueOutgoing to always queue a packet if there
are already packets in the queue. Ensures consistent ordering
of packet sends.
2011-04-15 16:44:53 -07:00
Mic Bowman 590d20903c Merge branch 'testmerge' into queuetest
Conflicts:
	OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
2011-04-13 15:41:17 -07:00
Mic Bowman bf91d1b077 remove packet monitoring debugging code 2011-04-13 15:37:25 -07:00
Mic Bowman b33aac737a Fixed the update of items in the priority queue to enable both
types of property updates to be specified. Not sure if one form
of property update should supercede another. But for now the old
OpenSim behavior is preserved by sending both.
2011-04-13 15:37:25 -07:00
Mic Bowman 5e7aba4f88 fixed a couple bugs with the property queues 2011-04-13 15:37:25 -07:00
Mic Bowman 3fe22126ca First pass at moving object property requests into a queue similar
to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
2011-04-13 15:37:25 -07:00
Mic Bowman 5b89c66c97 New tokenbucket algorithm. This one provides fair sharing of the queues
when client and simulator throttles are set. This algorithm also uses
 pre-defined burst rate of 150% of the sustained rate for each of the
 throttles.

Removed the "state" queue. The state queue is not a Linden queue and
appeared to be used just to get kill packets sent.
2011-04-13 15:37:25 -07:00
Justin Clark-Casey (justincc) 6613daa82a Add a regression test for rezzing a single object into a scene from user inventory 2011-04-13 17:46:36 +01:00
Mic Bowman b84ad81740 remove packet monitoring debugging code 2011-04-12 15:58:57 -07:00
Mic Bowman 78c04d61ca Fixed the update of items in the priority queue to enable both
types of property updates to be specified. Not sure if one form
of property update should supercede another. But for now the old
OpenSim behavior is preserved by sending both.
2011-04-12 15:58:57 -07:00
Mic Bowman 1a0f107012 fixed a couple bugs with the property queues 2011-04-12 15:58:57 -07:00
Mic Bowman 69d014e1dc First pass at moving object property requests into a queue similar
to the entity update queue. The number of property packets can
become significant when selecting/deselecting large numbers of
objects.

This is experimental code.
2011-04-12 15:58:57 -07:00