aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Add size of region to OAR control file. Megaregions (sw root OARs when ↵Justin Clark-Casey (justincc)2012-05-191-14/+24
| | | | | | saved) will have a size larger than 256x256 Not yet read. Do not rely on this information yet, it may change.
* Remove recent IRegionCombinerModule.IsMegaregion(). In theory, there can be ↵Justin Clark-Casey (justincc)2012-05-191-1/+1
| | | | | | more than one megaregion in a simulator, separated by water. Rename IsRootRegion() to IsRootForMegaregion()
* Add is_megaregion flag into oar control file. Not currently read - for ↵Justin Clark-Casey (justincc)2012-05-192-41/+74
| | | | | | | | future use. Please do not rely on this remaining here. An adaptation of part of Garmin's patch from http://opensimulator.org/mantis/view.php?id=5975, thanks! Flag only written if the SW corner OAR is saved - this is the only one that captures object data presently (though not land or terrain data). This adds an IRegionCombinerModule interface and the necessary methods on RegionCombinerModule
* minor: Remove redundant EstateOwner != UUID.Zero check in IsAdministrator ↵Justin Clark-Casey (justincc)2012-05-171-8/+6
| | | | | | because checking EstateOwner == user Due to an earlier check we already know that user != UUID.Zero so if EstateOwner == UUID.Zero, EstateOwner == user can never be true
* Remove redundant "Teleport failed:" from reason when QueryAccess fails for ↵Justin Clark-Casey (justincc)2012-05-171-4/+12
| | | | | | the destination simulator. This part of the string is already provided by the viewer. Also adds more reason logging for diagnostics when teleports are refused/fail.
* Route OAR SOG loading through the common ↵Justin Clark-Casey (justincc)2012-05-161-2/+1
| | | | | | SceneObjectSerializer.FromXml2Format() rather than the functionally identical but buggy Xml2ToSOG(). Remove buggy Xml2ToSOG().
* Fix issue where loading OARs could sometimes result in link numbers being ↵Justin Clark-Casey (justincc)2012-05-152-1/+56
| | | | | | | | | | reordered. This was because the parts in scene objects were sometimes not serialized in link order. This is perfectly fine since the parts still have the right link numbers, but an extra fix to adjust for this had not been done in the SerialiserModule methods that OAR loading used. Add regression test for same. Addresses http://opensimulator.org/mantis/view.php?id=5948, http://opensimulator.org/mantis/view.php?id=5749
* Allow use of regular expressions in "show object name", "show part name" and ↵Justin Clark-Casey (justincc)2012-05-151-101/+208
| | | | | | "delete object name" console commands if --regex switch is used. Deleteing objects by name, creator uuid or owner uuid now requires confirmation to avoid accidental deletion.
* Save the Telehub and its Spawn Points in the OAROren Hurvitz2012-05-143-2/+29
|
* minor: add explanative comment to 'missing baked texture' logging commonly ↵Justin Clark-Casey (justincc)2012-05-141-0/+10
| | | | seen on inter-simulator teleports where avatar baked textures are not available from the asset service.
* Set the agent in transit teleport flag at the first available opportunity ↵Justin Clark-Casey (justincc)2012-05-141-11/+37
| | | | | | | | | | (i.e. when IsInTransit() was being checked) to close down a race condition. On EntityTransferModule.DoTeleport() there was an IsInTransit() check to prevent multiple simultaneous teleport attempts. However, the SetInTransit() was only performed later on, which left a window in which multiple threads could pass the IsInTransit() check. This has been seen in the field and the results aren't pretty. This commit effectively combines the IsInTransit() and SetInTransit() checks so there is no such window. More failure cases are made to to call ResetInTransit() to adjust to this move.
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimJustin Clark-Casey (justincc)2012-05-141-19/+5
|\
| * Modifications for SMTP in OpenSimulator. Email size limit was fixed (was out ↵Chris Koeritz2012-05-131-19/+5
| | | | | | | | | | | | of step with documentation at 1024, so boosted to 4096). Added configuration item for maximum email size. Redundant sleep inside email module was fixed (LSL Api was already sleeping). Added sleep time configuration item for snooze between email sending for LSL Api. Added two new configuration items (email_max_size and email_pause_time) into the example OpenSim.ini, plus fixed a spelling error (llimits) and odd tabbing. Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
* | Add more region information to some teleport related loggingJustin Clark-Casey (justincc)2012-05-141-7/+8
|/
* Revert "Save the Telehub and its Spawn Points in the OAR"Justin Clark-Casey (justincc)2012-05-123-29/+2
| | | | | | | | | This reverts commit b0b7b45b943dd94546bcfcf5d3bb871cfe35b507. Sorry BlueWall, I wanted to discuss an aspect of the data storage but I couldn't assign bugs in 'patch included' state to myself until I changed mantis just now and I forgot to mention it on irc. I wouldn't normally revert but thinks get tricky when it comes to data formats. Essentially, I would like to see the Yaw, Pitch and Distance values as separate XML entities (as used in other aspects such as vectors, quaternions) rather than as a . delimited string We can discuss this more with Oren in opensimulator.org/mantis/view.php?id=6008
* Save the Telehub and its Spawn Points in the OAROren Hurvitz2012-05-103-2/+29
| | | | Signed-off-by: BlueWall <jamesh@bluewallgroup.com>
* Add even for terrain tainting and synchronize terrain module with physics ↵Dan Lake2012-05-101-0/+1
| | | | scene before physics simulation step rather than after
* Revert "Better error handling if Load OAR or Save OAR fail"Justin Clark-Casey (justincc)2012-05-073-32/+6
| | | | | | This reverts commit 65c88b2ff4e2616fa5c1d4c5e75298ed1eb1c0d8. Yet again I accidentally committed something whilst evaluating it.
* Better error handling if Load OAR or Save OAR failOren Hurvitz2012-05-073-6/+32
|
* refactor: Instead of performing a ScenePresence lookup twice over ↵Justin Clark-Casey (justincc)2012-05-071-18/+2
| | | | LocateClientObject() and GetClientScene(), do the lookup just once in LocateClientObject()
* Fix a bug in FriendsModule.StatusNotify() where all subsequent friends would ↵Justin Clark-Casey (justincc)2012-05-071-2/+7
| | | | not be notified once a non-local friend was found.
* Fire the scripting changed event with CHANGED_OWNER when an object that has ↵Justin Clark-Casey (justincc)2012-05-052-10/+9
| | | | | | | changed owners is rezzed. This needs to occur after the script is resumed rather than before, when the event is just dropped. Addresses http://opensimulator.org/mantis/view.php?id=5890 and http://opensimulator.org/mantis/view.php?id=5952
* Use the more efficient HashSet instead of List for ↵Justin Clark-Casey (justincc)2012-05-041-1/+1
| | | | FlotasmAssetCache.m_CurrentlyWriting
* Don't try and update the access time of a file that is actively being cached.Justin Clark-Casey (justincc)2012-05-041-2/+6
| | | | | This may cause IOErrors on Windows. Aims to help with http://opensimulator.org/mantis/view.php?id=6003
* Temporarily add debug log lines to lsl url request and releaseJustin Clark-Casey (justincc)2012-05-041-0/+13
| | | | To help with http://opensimulator.org/mantis/view.php?id=5993
* Mantis 60004 problems with damage and llSetDamage. In damage enabled areas ↵Talun2012-05-041-3/+14
| | | | this patch - Deletes any objects that have damage set > 0 that deliver that damage to an avatar Stops Gods receiving damage, Stops volume detect objects causing damage Deletes NPCS when their helth reduces to zero Gradually "heals" damage to an avatar Resets health on going to a non damage area
* Reinsert a 2000ms delay before closing a no longer required agent on the ↵Justin Clark-Casey (justincc)2012-05-031-2/+7
| | | | | | | | | source region after teleport to resolve Imprudence teleport problems. Viewers 1 and 3 are fine with doing this immediately. However, Imprudence has a small delay (<200ms, >500ms) after receiving the AgentCompleteMovement reply packet on the destination region before regarding that region as the currnet region. If Imprudence receives a DisableSimulator in this period, it quits. We are not restoring the full 5000ms delay since this brings back a bug where teleports permanently fail if an avatar tries to teleport back too quickly. This commit also sends the AgentCompleteMovement packet to the client before telling the source region to release its old agent, in order to further cut down any possibility of the DisableSimulator being recieved before the AgentMovementComplete.
* minor: resolve some mono compiler warningsJustin Clark-Casey (justincc)2012-05-032-8/+3
|
* Implement optional name and description on http stream handlers so that we ↵Justin Clark-Casey (justincc)2012-05-033-24/+34
| | | | | | can relate a slow request to what the handler actually does and the agent it serves, if applicable. This is most useful for capabilities where the url is not self-describing.
* Comment out the five second sleep in etm.DoTeleport() if the old agent needs ↵Justin Clark-Casey (justincc)2012-05-011-1/+1
| | | | | | | | | | | to be closed because it is no longer in the child's view distance. This sleep appears unnecessary since a sleep has already occurred in WaitForCallback() whilst waiting for the destination region to notify of teleport success. There are no async operations between this sleep and the WaitForCallback() If this sleep is present, then teleporting back to the source region within 5 seconds results in a disconnection. If this sleep is commented out then teleporting quickly back and forth between two simulators appears to work without issue. Tested on standalone, local grid and distributed grid. Please revert if there's something that I've missed.
* Remove some test code that accidentally crept in with 9d2e1c67Justin Clark-Casey (justincc)2012-05-011-3/+0
|
* Add regression test for teleporting between neighbouring regions on the same ↵Justin Clark-Casey (justincc)2012-05-012-7/+30
| | | | | | | simulator This adds a non-advertised wait_for_callback option in [EntityTransfer]. Default is always true. Teleport tests disable the wait for callback from the destination region in order to run within a single thread.
* Move max teleport distance check down into etm.DoTeleport() since this ↵Justin Clark-Casey (justincc)2012-05-011-40/+41
| | | | should apply to all teleport calls, not just those through Teleport()