aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Resolve various race conditions between accessing and removing external ↵Justin Clark-Casey (justincc)2012-06-221-132/+148
| | | | script URLs by more consistently locking on m_UrlMap
* Avoid a race condition where an incoming request to a script external URL ↵Justin Clark-Casey (justincc)2012-06-221-35/+73
| | | | | | | | | | | can trigger an exception is the URL was being removed at the same time. This involves three steps 1) Return gracefully in UrlModule.HttpRequestHandler() instead of throwing an exception when the url cannot be found in its index 2) Return true instead of false in HasEvents() if no matching request is found in the map. This call will only happen in the first place for raced requests. 3) Return a 404 in GetEvents() if the request is not in the index, rather than a blank 200 OK. Many thanks to Tom Haines in http://opensimulator.org/mantis/view.php?id=6051 for doing some of the work on this.
* Stop flicking IsAttachment false and then true in ↵Justin Clark-Casey (justincc)2012-06-221-10/+0
| | | | | | | | AttachmentsModule.UpdateAttachmentPosition() in order to avoid a hud update race condition. Previously, setting IsAttachment to false then true was necessary to serialize the updated attachment object information. However, UpdateAttachmentPosition no longer does this update. Whilst IsAttachment is set to false there is a race condition where the update thread can wrongly send hud object updates to clients that do not own the hud, resulting in screen artifacts.
* refactor AttachmentsModule tests to use a common method for standard ↵Justin Clark-Casey (justincc)2012-06-221-70/+69
| | | | attachment item setup
* Add regression test for updating attachment positionJustin Clark-Casey (justincc)2012-06-221-0/+30
|
* Lower warn logging on not having friends/group module on permissions to debug.Justin Clark-Casey (justincc)2012-06-201-2/+2
| | | | It's a valid configuration not to have these modules, but I think it's still worth logging the fact that certain permissions won't work (always return true)
* minor: Lower flotsam asset cache warning about not having a FlotsamCache.ini ↵Justin Clark-Casey (justincc)2012-06-201-1/+1
| | | | | | to debug It's perfectly okay not to have this section.
* Comment out the neighbour and land in connectors from info logging that they ↵Justin Clark-Casey (justincc)2012-06-202-2/+2
| | | | are starting up
* Change read config paramter from max_urls_per_simulator to ↵Justin Clark-Casey (justincc)2012-06-161-1/+1
| | | | max_external_urls_per_simulator, which is what it was meant to be
* Implement max_external_urls_per_simulator setting in [LL-Functions] to allow ↵Justin Clark-Casey (justincc)2012-06-161-1/+8
| | | | | | | configuration of how many urls can be set up by llRequestURL() Defaults remains as 100. This setting is per simulator instead of per region due to how the url script module is structured.
* Put all debug console commands into a single Debug section rather than ↵Justin Clark-Casey (justincc)2012-06-151-1/+1
| | | | scattering them over other categories
* Make XMLRPCModule use an existing HTTP server if one already exists on the ↵Justin Clark-Casey (justincc)2012-06-151-4/+5
| | | | desired port.
* correct wrong incomplete comment from previous commit 3c3ea19 in ↵Justin Clark-Casey (justincc)2012-06-141-1/+2
| | | | AttachmentsModule
* Fix a bug where scene objects attached as HUDs through scripts would not ↵Justin Clark-Casey (justincc)2012-06-141-0/+13
| | | | | | disappear for other avatars. We do this by sending a kill message for that object to all other avatars apart from the one that has the hud.
* Add SOG.HasPrivateAttachmentPoint to tell if a SOG has a private attachment ↵Justin Clark-Casey (justincc)2012-06-141-5/+2
| | | | | | | | point. HUDs attachment points are private. Change SOP.SendFullUpdateToClient() and SoundModule.PlayAttachedSound() to use this rather than different magic number formulations. This also corrects a bug in PlayAttachedSound() where the code assumed that all attachment points over 30 were HUDs. It appears this is no longer true with Neck and Root (Avatar Center)
* OnConnectionClosed listeners, retrieve data from IClientAPI.SceneAgent ↵Justin Clark-Casey (justincc)2012-06-123-48/+28
| | | | | | | rather than scanning all scene for the presence with the right id Stop checking IsLoggingOut on these listeners, if called with a root agent then we always want to perform these actions. This covers cases where the client is closed due to manual kick, simulator shutdown, etc.
* In PresenceDetector.OnConnectionClose(), use the IsChildAgent check already ↵Justin Clark-Casey (justincc)2012-06-121-12/+1
| | | | available on IClientAPI.SceneAgent rather than retrieving it again by scanning all scenes.
* Add last frame time monitor to MonitorModule now that this value is usefulJustin Clark-Casey (justincc)2012-06-111-0/+8
|
* Don't make duplicate call to ScenePresence.Close() separately in ↵Justin Clark-Casey (justincc)2012-06-081-1/+0
| | | | | | | ETM.DoTeleport() if an agent needs closing. This is always done as part of Scene.RemoveClient() Also refactors try/catching in Scene.RemoveClient() to log NREs instead of silently discarding, since these are useful symptoms of problems.
* Record the fact that child agents can have asset transactions.Justin Clark-Casey (justincc)2012-06-072-9/+8
| | | | Also change code to grab the agent asset transaction module once.
* minor: Change log messages on Warp3DImageModule to show they are from this ↵Justin Clark-Casey (justincc)2012-06-061-7/+9
| | | | module
* Rename MapImageModule for Warp3D to Warp3DImageModule to match its class ↵Justin Clark-Casey (justincc)2012-06-061-0/+0
| | | | name and make it easier to distinguish between map image modules.
* Actively dispose of Bitmaps in Warp3D image module and world map module once ↵Justin Clark-Casey (justincc)2012-06-063-215/+248
| | | | | | we've finished with them. This might help with memory leakage issues though I suspect it won't.
* enabling all corners of a sim to be set in one callSignpostMarv2012-06-061-1/+11
|
* Stop accidentally reading 4 Int16s instead of 2 in SIZE section of Terragen ↵Justin Clark-Casey (justincc)2012-06-051-2/+0
| | | | | | | file when loaded from a stream. Fixes a bug introduced 2 weeks ago in 67ebe80 Thanks to Plugh for pointing this out.
* Remove the "Profile" config as it's covered by the replaceable interfaceMelanie2012-06-041-8/+0
|
* Add an optional mechanism for physics modules to collect and return ↵Justin Clark-Casey (justincc)2012-05-311-44/+64
| | | | | | | | | | | arbitrary stats. If active, the physics module can return arbitrary stat counters that can be seen via the MonitoringModule (http://opensimulator.org/wiki/Monitoring_Module) This is only active in OdeScene if collect_stats = true in [ODEPhysicsSettings]. This patch allows OdeScene to collect elapsed time information for calls to the ODE native collision methods to assess what proportion of time this takes compared to total physics processing. This data is returned as ODENativeCollisionFrameMS in the monitoring module, updated every 3 seconds. The performance effect of collecting stats is probably extremely minor, dwarfed by the rest of the physics code.
* Add console command "teleport user" to allow teleport from the region consoleJustin Clark-Casey (justincc)2012-05-291-0/+189
| | | | See "help teleport user" on the console for more details
* refactor: factor out entity transfer state machine into a separate class to ↵Justin Clark-Casey (justincc)2012-05-283-239/+330
| | | | make code more analyzable
* If handling the failure of teleport, move agent state to CleaningUp when we ↵Justin Clark-Casey (justincc)2012-05-281-3/+6
| | | | | | start the handling. Also fixes the log warning from ResetInTransit() if the state is cleared direct from Transferring or ReceiveAtDestination, as pointed out in mantis 5426
* Resolve some mono compiler warnings.Justin Clark-Casey (justincc)2012-05-259-26/+33
|
* on agent cross, remove from physics scene after its been placed in transit, ↵Justin Clark-Casey (justincc)2012-05-251-3/+7
| | | | not before.
* refactor: make ETM.CrossAgentToNewRegionAsync neighbourRegion == null check ↵Justin Clark-Casey (justincc)2012-05-251-90/+92
| | | | return earlier to simplify method
* Fix bug where a failed QueryAccess to a remove region would always have the ↵Justin Clark-Casey (justincc)2012-05-251-2/+1
| | | | reason "Communications failure" no matter what the destination region actually returned
* Stop it being possible for an agent to teleport back to its source region ↵Justin Clark-Casey (justincc)2012-05-251-24/+165
| | | | | | | | | before the source region has finished cleaning up old agent data and structures. If this is allowed, then the client usually gets forcibly logged out and data structures might be put into bad states. To prevent this, the binary state machine of EMT.m_agentsInTransit is replaced with a 4 state machine (Preparing, Transferring, ReceivedAtDestination, CleaningUp). This is necessary because the source region needs to know when the destination region has received the user but a teleport back cannot happen until the source region has cleaned up. Tested on standalone, grid and with v1 and v3 clients.
* Don't actually proceed on a within-region teleport if another is already ↵Justin Clark-Casey (justincc)2012-05-241-0/+2
| | | | | | taking place, rather than just (falsely) logging that we're not going to proceed. An oversight from recent commit 9ab0c81
* On inter-region teleport, only stand the avatar up if the QueryAccess call ↵Justin Clark-Casey (justincc)2012-05-241-7/+7
| | | | to the destination scene actually succeeds.
* Now that the EntityTransferModule is per-region, fetch the event queue ↵Justin Clark-Casey (justincc)2012-05-241-18/+22
| | | | module once rather than repeatedly via scene presences
* Fix issue where a dns resolution failure on the final destination might ↵Justin Clark-Casey (justincc)2012-05-241-192/+200
| | | | | | leave the user unable to teleport since the transit flag was not being reset. This moves the 'already in transit' check further up and resets the flag if dns resolution fails and in the new required places.
* Comment out accidentally left in log line that was printing out the control ↵Justin Clark-Casey (justincc)2012-05-241-3/+3
| | | | file on OAR save
* Make ISimulationScene.GetScene() used the more efficient region id for ↵Justin Clark-Casey (justincc)2012-05-242-8/+16
| | | | lookup rather than the region handle.
* If an agent is still registered as 'in transit' by the source region, don't ↵Justin Clark-Casey (justincc)2012-05-243-157/+153
| | | | | | | | | | | | allow an immediate teleport back. This is to help relieve a race condition when an agent teleports then immediately attempts to teleport back before the source region has properly cleaned up/demoted the old ScenePresence. This is rare in viewers but much more possible via scripting or region module. However, more needs to be done since virtually all clean up happens after the transit flag is cleared . Possibly need to add a 'cleaning up' state to in transit. This change required making the EntityTransferModule and HGEntityTransferModule per-region rather than shared, in order to allow separate transit lists. Changes were also required in LocalSimulationConnector. Tested in standalone, grid and with local and remote region crossings with attachments.
* Environment Module - allows Environment settings for Viewer3 warning: ↵PixelTomsen2012-05-231-0/+224
| | | | | | | | | | | | | includes database region store migrations for mssql, mysql, sqlite enable/disable this module: Cap_EnvironmentSettings = "localhost" (for enable) Cap_EnvironmentSettings = "" (for disable) at ClientStack.LindenCaps section (OpenSimDefaults.ini file) or owerwrite in OpenSim.ini mantis: http://opensimulator.org/mantis/view.php?id=5860 Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
* Fix llGetSimulatorHostname to return configured hostnameBlueWall2012-05-231-0/+4
|
* minor: Change [OBJECT COMMANDS MODULE] log strings to [REGION COMMANDS ↵Justin Clark-Casey (justincc)2012-05-231-6/+6
| | | | MODULE] strings, though all these are currently commented out anyway
* Add "show scene" command which lists stats for the currently selected ↵Justin Clark-Casey (justincc)2012-05-231-0/+155
| | | | | | | | | | console scene(s) This includes prim count, script count, avatar count, etc. Information is currently the same as "show stats", though show stats can only show one scene at a time because it listens for the latest outgoing stats packet (a bad approach that needs to change). Might be better to tie this module into the other stats module to display arbitrary stats rather than fetching directly from scene.SimStatsReporter. Console command is "show scene" because "show region" already exists for the grid service, which is unfortunate. Might need to make a distinction between "scene" relating to a live scene and "region" relating to more static region data (url, coords, etc.)
* Fetch the dialog module reference in AttachmentsModule in RegionLoaded() not ↵Justin Clark-Casey (justincc)2012-05-231-1/+1
| | | | | | AddRegion() The reference is not guaranteed to be there when AddRegion() is called but will definitely be present at RegionLoaded() if it's going to be present at all.
* minor: Make log class names in InventoryAccessModule uniformJustin Clark-Casey (justincc)2012-05-231-10/+10
|
* Fix bug where an avatar that had an object they owned attached through ↵Justin Clark-Casey (justincc)2012-05-233-160/+118
| | | | | | | llAttachToAvatar() or osForceAttachToAvatar() would wrongly have next permissions come into play when they detached that object and rezzed it in scene. This is because the attachments module code was setting the 'object slam' bit by using PermissionMask.All Solution here is to route the attachment item creation call through the existing inventory code in BasicInventoryAccessModule rather than copy/pasted code in AttachmentsModule itself.
* Setting 'in transit' on a local teleport as well as inter-region teleports.Justin Clark-Casey (justincc)2012-05-211-0/+9
| | | | | This is to eliminate possible race conditions if two teleport calls are made concurrently, where at least one is a local teleport. This is pretty much impossible on a manual user teleport but can happen on script-invoked teleports.