Commit Graph

834 Commits (8a098bf12c620bd56f3371f1cf8a90ffa04b16c8)

Author SHA1 Message Date
Justin Clarke Casey 7ce8ccb043 * refactor: Move tree code out into a separate module 2008-12-19 17:57:03 +00:00
Justin Clarke Casey 4f88f25913 * refactor: move gestures code out from Scene into its own module 2008-12-18 18:49:05 +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
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
diva 7b6471f642 Kicking child agents off on the first login after a client crash. The child agents kickoff was
missing from when this is run in grid mode. But, worse, turns out that this whole feature of kicking
off the user after a crash was entirely missing from standalone mode.
2008-12-17 17:44:00 +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
diva 4b81ec02d7 Avoid sending DisableSimulator event to the root agent upon logout. 2008-12-16 19:44:32 +00:00
diva 8fffdac7fa Attempt at restoring inventory access after TPs/crossings. RemoveClient in Scene was being too
aggressive at nixing the user out of the cache. We're now relying on NeedSceneCacheClear to decide
whether to nix it or not. All other mods in other files are for better debugging messages.
2008-12-15 20:45:40 +00:00
Justin Clarke Casey 2e288fade1 * minor: Stop presence child status suffering an NRE if the agent uuid given is not represent at all 2008-12-15 18:11:47 +00:00
diva 4b71b88114 Bug fix in new child agents management. Thanks DigiDaz for helping identify this issue.
We need to update all child agents whenever the root agent crosses regions. The update
now includes child agents in common neighbours. This is so that those get updated with the
seeds of the new child agents that are spawned from the receiving region.
This also fixes some timing issues. We need to close child agents from the originating region
before we update child agents in the receiving region.
2008-12-15 16:23:34 +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
Justin Clarke Casey f38c35b609 * refactor: Move inventory handlers out from UserProfileCacheService
* This means that UserProfileCacheService no longer needs to know about IClientAPI and can leave it to callers to do their own error logging
* This is also more consistent with the way that item inventory manipulation is handled
* I don't really think Scene.PacketHandlers.cs should be a permanent home for these handlers - this is just for convenience
2008-12-10 19:12:59 +00:00
Melanie Thielker e8a43b136b Applying diva's revert patch. Reverts closing child agents and makes
TP more reliable again.
2008-12-10 01:37:31 +00:00
Melanie Thielker c5bd7975e8 Change AllowScriptCrossings to be AllowScriptCrossing to match the
.ini files already out there
2008-12-06 18:33:13 +00:00
Melanie Thielker d24e4a9f2d Committing the missing bits to enable script crossing. Disabled by default.
For a script to successfully cross, both source and destination region must
enable the feature. WARNING: Trusting binaries from other sims allows
ARBITRARY REMOTE CODE EXECUTION for ANYONE! Please do not use except
in ultimate trust scenarios!
2008-12-05 20:30:00 +00:00
Melanie Thielker d1841ca94d Mantis #2584 (again)
Next step of diva's TP fixes and HG support
2008-11-30 23:36:56 +00:00
Melanie Thielker 379d44fd6d Fix prim crossings, again. 2008-11-30 09:03:55 +00:00
Jeff Ames 077314cdd3 Update svn properties. Add copyright header. Minor formatting cleanup. 2008-11-30 00:51:40 +00:00
Melanie Thielker b6fef0fdb8 Add configuration values for scripted prim region crossing 2008-11-29 14:26:42 +00:00
Melanie Thielker 1b3a3ffc77 Finally make attachments stay put. Randomize local ID generation to
prevent adjacent sims from using identical Local IDs for the attachment
Thanks to Mana Janus (Hippo Viewer) for providing the crucial bit of
information, namely that, due to a bug in the viewer, adjacent sims can't
use the same local ids.
2008-11-29 13:17:21 +00:00
Melanie Thielker e1153394c1 Stop attachments from twisting away. Thismakes attachments phantom, which
is the proper way to handle this
2008-11-29 07:05:33 +00:00
Melanie Thielker 287c724b55 A try to better attachment crossing. 2008-11-29 01:33:10 +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
Justin Clarke Casey 71e05a5707 * test: Add a wodge of code in order to be able to slightly extend a test to deliver a taken object to a user inventory folder without throwing an exception
* test doesn't actually double check for the presence of the item yet
2008-11-28 19:39:46 +00:00
Melanie Thielker dd3f87ceb5 Revert setting the parent local is explicitly, as that caused even more
failures
2008-11-28 04:50:50 +00:00
Melanie Thielker 0afbb6cb3e Omit parcel checks for attachments. 2008-11-28 04:31:39 +00:00
Melanie Thielker 3ff34579e4 Force regioncrossed prims to get a new LocalID. Reset parent local ID to new
avatar local ID when corssing.
2008-11-28 03:28:39 +00:00
Melanie Thielker a7f3d2fbc2 Invert a test to allow prims to region-cross again 2008-11-28 02:31:43 +00:00
Justin Clarke Casey 7c6c776ff7 * test: Add the ability to add a plugin directory to the user and inventory services in order to extend unit tests for user and inventory information
* I can't spend any longer in trying to get Mono.Addins to work with the unit tests, so this is not a proper plugin at this time
2008-11-27 19:28:04 +00:00
Melanie Thielker 6b7ba29986 Fix permission propagation that was broken some revision back, causing
sold/given prim to become full perm.
2008-11-27 03:17:00 +00:00
Adam Frisby 2a8ff937d5 * Removed more locks on Entities
* Entities should now in theory be lock-free externally.
* Other properties may cause blocking however[?].
* ScenePresence maintains separate locks so isn't fixed by this commit.
2008-11-24 15:14:33 +00:00
Adam Frisby 47829849d9 * Swaps Scene.Entities Dictionary for EntityManager.
* Important Changes: Scene.Entities is now IEnumerable directly. You do not need to use Entities.Values, you can Enumerate on .Entities directly. (So 'foreach Scene.Entities' vs 'foreach Scene.Entities.Values').
* Locks: Entities maintains it's own internal locking states. This means you do not need to lock entities anymore. I'll be going through and removing locks on it systematically.
2008-11-24 14:45:05 +00:00
Melanie Thielker 7aa32ac6e0 Add root agent tracking to presence module 2008-11-22 23:38:25 +00:00
Melanie Thielker 2fa072b579 Next step in the presence module - some core plumbing included at
no extra cost
2008-11-22 22:56:00 +00:00
Melanie Thielker 691c4bc756 Mantis #2442
Attempt to reinstate the Object Entry flag in parcel settings
2008-11-22 00:23:48 +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 ee4d4d784e Fully implement object return from the parcel dialog 2008-11-21 07:33:13 +00:00
Justin Clarke Casey 81dcf223bf * Add enough infrastructure code to run an extremely basic and flaky add root agent scene test 2008-11-20 16:58:40 +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 9d7e503ce3 Prevent a nullref when building new prims while others watch 2008-11-18 17:21:33 +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 d54b6608a7 * Stop nulling SOG.m_rootPart and parts on object deletion
* This renders RootPart == null checks useless - the replacement is to check SOG.IsDeleted.  However, in many cases this will not be necessary since updates to deleted parts 
will not be sent to the client
* This should remove any remaining race conditions where an object is deleted while another thread is yet to obtain the root part to perform some operation
* Doing this is probably a necessary prerequisite to moving to a model without a separate SOG and SOP
* Unfortunately it's not possible to eliminate all RootPart == null checks since in some contexts it is currently used to check whether an object was created successfully
2008-11-17 15:40:27 +00:00
Homer Horwitz 4343ddeec1 Fix NRE on TP-to-home, if the home-region is unavailable. 2008-11-16 23:53:00 +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 3de41ea377 Reinstate the IM sending from scripts and from autoreturn 2008-11-16 04:31:52 +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
Homer Horwitz e26169f0b0 Mantis#2552: Thanks idb, for a patch that fixes persistence of physical prims.
(added a fix for the broken build from last commit, too)
2008-11-15 18:00:34 +00:00
Homer Horwitz 21b69ac515 Mantis #2621: Thanks idb, for a patch that will persist regularily changed objects better.
Objects will be persisted now MinimumTimeBeforePersistenceConsidered seconds
after the last change, but latest MaximumTimeBeforePersistenceConsidered after
the first change (both are configurable in OpenSim.ini.example and are set to
60 and 600 as default).
2008-11-15 17:52:00 +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
Charles Krinke 8a3d9ea2db Mantis#2597. Thank you kindly, Idb for a patch that:
Solves the problem of changes to objects not 
persisted on server shutdown.
2008-11-13 04:23:31 +00:00
Justin Clarke Casey 2c7ac33650 * test: Add basic synchronous object remove test 2008-11-12 20:35:35 +00:00
Justin Clarke Casey cec112c87a * refactor: as per a recent opensim-dev thread, rename InnerScene to SceneGraph to make it more descriptive of its intended function 2008-11-12 20:16:46 +00:00
Justin Clarke Casey b636bb0f9e * Stop the pointless passing of a scene's own region handler back to it in region comms
* Some scene methods ignored it, others did nothing if the region handler given did not match their own (which would never be triggered)
2008-11-12 19:12:33 +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
Justin Clarke Casey a814ac3d67 * Put an Enabled switch on the async object deleter for future testing purposes 2008-11-11 20:33:29 +00:00
Justin Clarke Casey 97816f8c90 * Implement basic region filtering as described in https://lists.berlios.de/pipermail/opensim-dev/2008-November/003468.html
* This is done by sending a 'major interface version' number on sim registration.  Developers must increment this every time they make a change that would make the previous 
OpenSim revision failure incompatible with the new one (non-fatal incompatibilities are fine).
* This number resides in OpenSim.Framework.Servers.VersionInfo.MajorInterfaceVersion
* This allows the grid service to stop older, incompatible regions from connecting
2008-11-11 17:02:46 +00:00
Melanie Thielker 89570e1637 Add ClampPrimSize option to ensure no prim can exceed the set size. This
will allow people who don't want megaprims in their sim to prevent them
from being created. Any prim rezzed or pulled across the border will be
clamped to the size specified in OpenSim.ini if this option is set.
2008-11-11 03:10:28 +00:00
Jeff Ames 5276c4bdf8 Update svn properties, minor formatting cleanup. 2008-11-11 00:52:47 +00:00
Justin Clarke Casey 5d1d5a22a9 * Extend basic scene test to retrieve the object from the scene and match uuids
* Decouple sog and sop by removing the need to pass the sog to the sop when it is created - most of the code was doing this operation (and hence duplicating it) anyway
* Remove unused constructors
2008-11-10 18:10:00 +00:00
Sean Dague bfc2d8c231 From: Christopher Yeoh <cyeoh@au1.ibm.com>
This patch addresses mantis bug 2576.

 http://opensimulator.org/mantis/view.php?id=2576

Briefly, if you call llDie from many scripts at the same time (say a
build is cleaning up excess objects) then OpenSim deadlocks. Avatars
are unable to move, and whilst the console is active you can't do much
without it also locking up. This only occurs with the XEngine script
engine enabled.

I have attached a patch which works, but I'm not sure its the right way
to address the problem. The fundamental problem is that a lock on a
SceneObjectGroup's m_parts is taken when the object is deleted, a
callback to the script engine occurs and a fair way down the callchain,
potentially there are locks taken on several other SceneObjectGroup's
m_parts. Deadlock then occurs if you get unlucky enough
to get in the situation where with several llDie's are called and
SceneObjectGroups
have taken a lock on their own m_parts, and end up waiting on each
other's
locks to become available.

The patch adds a lock at a high level so that that the removal of script
instances
from an object only occurs once per scene at a time. This avoids the
potential
of deadlock. Theoretically there could be some performance hit but
AFAICT
the path taken is not a common occurrence.

Would welcome any suggestions for a better solution, otherwise feel free
to apply  :-)

Note this patch was built against the 0.6.0 freeze as trunk was
rather broken for me this morning (creating a script killed the client
connection).
2008-11-10 12:42:22 +00:00
Melanie Thielker fc6f3edec6 Stop attachments from causing an update to be sent on every frame in which
an avatar moves.
2008-11-10 05:21:51 +00:00
Melanie Thielker 664e8a464e Script region crossing. This has not user functionality, but lays all the
groundwork.
2008-11-09 19:30:40 +00:00
Adam Frisby cf0a14bec9 * Added IClientIM to IClientCore interfaces
* Changed SendInstantMessage, dropped fromAgentSession and imSessionID as security precaution, see http://opensimulator.org/wiki/OpenSim_0.6_IClientAPI#Porting_Guide for details on porting.
* Removed unused usings from Framework.*
2008-11-08 17:20:54 +00:00
Melanie Thielker 0fc57de7de Remove part of another patch that would cause DNE to nuke the sim in it's
current form
2008-11-08 02:31:57 +00:00
Melanie Thielker 833f5e8bed Refactor IEventReceiver back into IScriptEngine 2008-11-08 02:24:34 +00:00
Justin Clarke Casey 4ace67a81d * Fix bug in r7162 where avatars could not move
* Was caused by the lack of a local id.  Local ids are now given from the same sequence as prims, rather than a separate one
* I don't believe this will cause any problems, but please revert to a separate sequence if it does
2008-11-07 22:49:36 +00:00
Justin Clarke Casey ba1d9ca26b * refactor: cleanup AllocateLocalPrimId() a bit more 2008-11-07 22:08:58 +00:00
Justin Clarke Casey fb694fb177 * Rename PrimIDAllocate() to more effectively convey what it does, and put the verb at the front 2008-11-07 21:50:03 +00:00
Justin Clarke Casey 54e10e5b61 * Stop requiring local ids in the SOG constructors.
* These are assigned when the object is attached to the scene
2008-11-07 21:07:14 +00:00
Justin Clarke Casey ebd9f22b29 * refactor: allocate local ids to prims only when an object is attached to a scene 2008-11-07 18:46:11 +00:00
Melanie Thielker 48c6d052d9 Attachments, attachments, and, did I say attachments?
Too many fixes to list.
2008-11-07 05:48:44 +00:00
Justin Clarke Casey 0d17ba2a76 * refactor: Attach a scene object to a scene separately from its construction 2008-11-06 22:21:25 +00:00
Justin Clarke Casey 9770cf778e * minor: Make some 'startup config failed to load' log messages more consistent 2008-11-06 20:38:04 +00:00
Homer Horwitz 38e8853e57 Megapatch that fixes/adds: friend offer/deny/accept, friendship termination,
on-/offline updates, calling cards for friends.
This adds methods in the DB layer and changes the MessagingServer, so a full
update (incl. UGAIM) is necessary to get it working. Older regions shouldn't
break, nor should older UGAIM break newer regions, but friends/presence will
only work with all concerned parts (UGAIM, source region and destination
region) at this revision (or later).
I added the DB code for MSSQL, too, but couldn't test that.
BEWARE: May contain bugs.
2008-11-01 22:09:48 +00:00
Justin Clarke Casey 269303d97d * test: Add basic scene test which merely instantiates the scene right now
* set debug scene name on scene registration, rather than within the Scene constructor
2008-10-31 18:39:51 +00:00
Justin Clarke Casey 5feaff8524 test: Extend malformed packet test to actually check that a valid packet can get through after the malformed ones have been sent 2008-10-30 22:32:23 +00:00
Justin Clarke Casey 247b806134 * minor: Add documentation to some of the appearance methods, change some logging messages 2008-10-28 17:35:36 +00:00
Justin Clarke Casey baa29fcbff * minor: Doc and log message tidy up
* reinstate debug level log message indicating when a child agent is made a root for future debugging purposes
2008-10-28 15:46:30 +00:00
Melanie Thielker f9b3ef32c6 Remove the gratuitious prim deletes caused by linking. This makes linking
a bit faster.
2008-10-22 03:32:45 +00:00
Melanie Thielker 264eeffd02 Fix thingd so that autoreturn also works when the user is not in the sim.
Also add experimental distance ordering for prims
2008-10-18 07:27:39 +00:00
Melanie Thielker efe3f3eb2a Megapatch. :) Fix skull attachment editing. Streamline Object terse updates.
Add rezzing time to objects. Add Object return and traffic fields to land
database. Add plumbing for auto return. Implement auto return.
Contains a migration. May contain nuts.
2008-10-18 05:51:36 +00:00
Justin Clarke Casey 6789234335 * Apply http://opensimulator.org/mantis/view.php?id=2405
* Implement llGetRegionFPS()
* Thanks idb
2008-10-16 13:17:31 +00:00
Justin Clarke Casey 3b9400bcea * refactor: rename SendKiPrimitive to SendKillObject since this appears more descriptive of what it actually does 2008-10-14 14:43:46 +00:00
Mike Mazur 3e124a3dba - convert comments into documentation
- minor formatting adjustments
- remove some trailing whitespace
2008-10-14 09:40:05 +00:00
Homer Horwitz 4c337c48c7 Add logging in case of a SOG without rootpart 2008-10-11 17:48:37 +00:00
Teravus Ovares abc6424c51 * Removed Heartbeat timer
* Implemented a proper update thread
* Removed the UpdateLock Mutex as it's no longer needed because updates can only happen one at a time now.
* This should actually improve performance significantly.. But, see the warning on the next line!
* Warning: If there are deadlocks that the threadpool timer method was hiding, this will expose them for all the nastiness they are.
2008-10-11 11:43:42 +00:00
Melanie Thielker 96689723e5 Add the beginnings of a sim health check (through remote admin) 2008-10-10 01:10:33 +00:00
Homer Horwitz ac89e89da3 - Fix wrong order of max/min usage for clipping. Uses Util.Clamp now
- Add support for immediate switching of Music/Media URLs. Radio-scripts should work now.
2008-10-08 18:52:50 +00:00
Melanie Thielker c4d741180f Add some permissions checks and fixes 2008-10-08 02:45:23 +00:00
Justin Clarke Casey cb7a9eaa09 * Stop the sim stats reporter reusing the same SimStatsPacket for all clients
* I believe this was the cause of the remaining packet_out_of_order messages in the Linden client logs
* There were race conditions where multiple clientstacks would overwrite each other's sequence numbers
2008-10-06 19:52:54 +00:00
Melanie Thielker 8887bde499 Cause inventory items to also be sold when a prim is sold 2008-10-06 06:15:19 +00:00
Melanie Thielker 1b678f062a Fix a number of errors in transfer of objects 2008-10-06 06:08:45 +00:00
Melanie Thielker 6ab5b523f8 Implements ObjectOwner god mode packet (Set Owner To Me admin option) 2008-10-06 00:09:49 +00:00
Homer Horwitz 6bf72c95cb For symmetry reasons, I think this probably is a bug. 2008-10-05 20:06:42 +00:00
Jeff Ames aab6cdd8b0 Update svn properties, minor formatting cleanup. 2008-10-05 14:15:39 +00:00
Justin Clarke Casey 0b594a072c * Check in the second part of http://opensimulator.org/mantis/view.php?id=2334 since enough time has passed such that servers following head have probably updated
* This patch aims to store look at data when an avatar logs off in grid mode
* However, in my short test it doesn't appear to be working yet - numbers are being stored but they don't look correct
* But this doesn't appear to cause any login problems
* Thanks tyre
2008-10-04 18:46:34 +00:00