Commit Graph

356 Commits (0c03a48fb2060eda4d288e2d2ca4e650ce000b4b)

Author SHA1 Message Date
Melanie Thielker 9e545c9984 Mantis #2133
Thank you, Xugu Madison and ChrisDown, for a patch that
fixes linux filename extensions from .Xml back to .xml
2008-09-06 14:58:23 +00:00
Teravus Ovares 7d89e12293 * This is the fabled LibOMV update with all of the libOMV types from JHurliman
* This is a HUGE OMG update and will definitely have unknown side effects.. so this is really only for the strong hearted at this point.  Regular people should let the dust settle.
* This has been tested to work with most basic functions. However..   make sure you back up 'everything' before using this.  It's that big!  
* Essentially we're back at square 1 in the testing phase..  so lets identify things that broke.
2008-09-06 07:52:41 +00:00
Jeff Ames 9053e8510c Update svn properties. 2008-09-03 14:05:49 +00:00
Melanie Thielker 805deb5a9b Attempt to fix an issue I havebeen seeing, where asset server failure
results in a memory leak which will make the region crash and burn
after a while.
2008-08-31 10:42:35 +00:00
Adam Frisby f57f4d1ab8 * Added "File Asset Client" to OpenSim Asset Server-types.
* You can replace "grid" as the asset system with "file" to save and load all your assets from a directory on your hard disk. Files are serialised to XML and saved in the format "/<dir>/0x/0x/0x/0000-0000-000000-0000-0000.xml"
* Directory <dir> is sharing the Asset Server URL path, use a normal path here instead (ie C:\xyz or /var/assets/). 
* This probably wont work well in grid mode unless every sim has access to the same directory. This is mostly intended for standalone usage where quick and convenient access to assets is required.
2008-08-30 04:42:23 +00:00
Melanie Thielker 10b2a4597a Mantis #1903
Thank you, cmickeyb, for a patch that fixes inventory folder retrieval.
2008-08-28 20:56:53 +00:00
Jeff Ames 3bf8858727 Update svn properties, formatting cleanup. 2008-08-28 14:41:54 +00:00
Melanie Thielker 670719cb76 Mantis #1903
Thank you, cmickeyb, for a patch that prevents the loss of folders received
out of sequence, and the items within.
2008-08-27 00:40:36 +00:00
Teravus Ovares 2912aafe25 * This commit incorporates the heart of the OpenGridProtocol patch that is currently on Forge in a nice, friendly modular format.
* There are a lot of changes and this is quite experimental.  It's off by default, but you can turn it on by examining the bottom of the opensim.ini.example for the proper OpenSim.ini settings.    Remember, you still need an agent domain..  
* Furthermore, it isn't quite right when it comes to teleporting to remote regions (place_avatar)
2008-08-25 07:35:17 +00:00
Melanie Thielker 29530f3029 Attachment persistence!!! Patch #9170 (Mantis #1171)
Attachments now persist across logouts. Mostly untested.
2008-08-19 07:11:58 +00:00
Jeff Ames 6ef9d4da90 Formatting cleanup. 2008-08-18 00:39:10 +00:00
Jeff Ames 6fa26f5b41 Update svn properties, minor formatting cleanup. 2008-08-16 17:26:25 +00:00
Melanie Thielker e5a7ba5df4 Guard against the null UUID being queried from the userserver
repeatedly.
2008-08-16 03:18:21 +00:00
Justin Clarke Casey 4e555b87f3 * Stop warnings about non existent scene presences/entities being removed on client log off
* This is being done by preventing close from being called twice on child agent closure (nres which would have been thrown are being swallowed).  
* However, it should be possible to do much better cleanup on this code in the future
2008-08-12 19:00:13 +00:00
Mike Mazur 8ea92c0669 Thanks, lulurun, for a patch that addresses inventory problems that occur
occasionally, but are fixed on restart (issue 1919).
This patch introduces the following changes:
1. when a user teleports out of Region A, remove that user's profile
from the Region A user profile cache
2. when a user crosses between regions out of Region A, remove that
user's profile from the Region A user profile cache
3. the user profile cache's session ID member can now be set (written),
and is updated each time a connection with a new avatar is established (ie: a
new avatar enters the region)
4. when a region server looks up a user profile and a cache miss
occurs, fetch the user profile from the user server first instead of
immediately returning null
2008-08-12 06:21:02 +00:00
Justin Clarke Casey 10e0df0a2d * correct bug from last commit - for now don't drop cached user profile when an agent is downgraded to a child agent
* since upgrading to a root agent doesn't currently re-retrieve the user profile
2008-08-01 19:24:48 +00:00
Justin Clarke Casey 43b2ff1d11 * Drop cached inventory from the local region when a user crosses out into a remote region
* May resolves inventory problems that occur when the user moves between two regions`
* e.g. if the user moves to a second region, adds an inventory item, moves back to the original region then tries to manipulate that item
* Not yet implemented for teleport
2008-08-01 18:49:48 +00:00
Justin Clarke Casey de4e3bfede * minor: eliminate some unused variables in InventoryFolderImpl 2008-08-01 16:22:26 +00:00
Justin Clarke Casey 900a656420 * refactor: rearrange path inventory manipulation so that input tidying can be used for item paths as well 2008-07-31 18:23:17 +00:00
Justin Clarke Casey 465e77b618 * refactor: eliminate unused SubFoldersCount 2008-07-31 17:35:47 +00:00
Justin Clarke Casey a62b906a7b * allow inventory folders to be located by path
* first pass method impl
2008-07-31 17:32:13 +00:00
Justin Clarke Casey 078643a017 * refactor: Change CachedUserInfo.HasInventory to HasReceivedInventory to make actual function clearer 2008-07-31 16:05:50 +00:00
Justin Clarke Casey 58af0fabeb * minor: reduce coupling by passing in only session id to CachedUserInfo 2008-07-31 15:53:07 +00:00
Mike Mazur 2270b25265 Thanks, sempuki, for a patch that moves all Grid Server's plugins to
PluginLoader. Fix issue 1871.
2008-07-31 09:24:28 +00:00
Dr Scofield f2bc404e70 squasing warning. 2008-07-25 12:59:41 +00:00
Mike Mazur 84cc69573b Thanks, lulurun, for a patch that adds an authenticated session cache to reduce
"check_auth_session" requests from inventory server to user server.
2008-07-25 07:16:27 +00:00
Jeff Ames 80d8e2889e Update svn properties. Formatting cleanup. Remove a compiler warning. 2008-07-23 13:24:25 +00:00
Johan Berntsson ce4bcb5065 The new secure inventory server mode (in r5590) can now be disabled from OpenSim.ini. Default is to use the new mode. 2008-07-23 09:46:04 +00:00
Johan Berntsson 344c9caeb6 thanks lulurun for a security patch that blocks unathorized access to the inventory server (see http://opensimulator.org/wiki/Security_vulnerability_brought_by_non-check_inventory_service) 2008-07-23 06:59:02 +00:00
Melanie Thielker 4ff529bdaf Patch #9146 (No Mantis)
Prevent an exception caused by inventory server fetch requests
2008-07-12 18:26:25 +00:00
Melanie Thielker f629fdb88d Patches #9143 and #9144 (Mantis #1723)
Changes the permissions module to make scripts permissive only when intended
Adds security checks to asset transfers to prevent hacked clients fron
requesting script sources.
Adds security checks to llClientView to verify all aspects of ownership
and permissions for inventory based script retrieval.
2008-07-12 06:24:43 +00:00
Justin Clarke Casey 7fa00f9ecd * remove redundant sync locking in AssetServerBase since this is already being done by the lower database layers 2008-07-07 19:32:21 +00:00
Justin Clarke Casey 1813946937 * remove unused CommitAssets() hook for now 2008-07-07 19:18:44 +00:00
Justin Clarke Casey 0b2fcbfec4 * Start scripts loaded from an archive 2008-07-07 18:54:11 +00:00
Justin Clarke Casey 9052c43319 * Drop InvType from the assets table since it is no longer used
* Migration should be automatic on sqlite and mysql
* Migration is not automatic on mssql, you will need to drop the invType column manually
* Migration should be fine, but as for any db change, I would recommend making sure you have backups before moving past this revision
2008-07-02 16:20:54 +00:00
Sean Dague 721988adcd add the ability to cherry pick expire something from the asset
cache.  Bandaid until we rethink the caches a bit more.
2008-06-30 15:05:30 +00:00
MW b0330a0bb5 disabled the multiple inventory server support in login service again.
And reverted CachedUserInfo back to revision 5262. 
I don't think most of the inventory problems that people are reporting are due to these, but its easier to deal with one set of potential problems at a time, and I'm not going to get any time in the week to work on this anyway.
2008-06-29 20:39:34 +00:00
MW 031b3d5314 small change to see if that helps with the inventory problems. 2008-06-28 23:05:08 +00:00
MW 86defd0a69 plumbing for multiple inventory servers. Mostly done on the region server side.
TODO next is to make the login server read/write a users inventory from the correct server (the inventory url set in a userprofile)
On the region side, although not tested with multiple servers it should work if that inventory url was set, and the inventory servers urls have been added to the CommunicationsManager, using CommunicationsManager.AddInventoryService(string hostUrl)
2008-06-28 15:13:17 +00:00
Charles Krinke 1cd6b71b60 Mantis#1594. Thank you, Melanie for a patch that:
Fixes:
- Wearable icon and name sreset to default on copy/paste
- Cache is not updated when renaming/moving folders
- Partial refactor to make inventory less dependen on AssetBase having a "Name" field
- Add llGiveInventoryList() function
2008-06-26 02:46:29 +00:00
Teravus Ovares cb29926e3c * Refactors call to OutPacket out of AssetCache and into LLClientView 2008-06-18 23:04:15 +00:00
Justin Clarke Casey 4c2171ec82 * Allow archiver to save and load objects within other objects to arbitrary levels
* This currently has various bugs which are more to do with the way its been hacked together than the feature itself (e.g. on save-oar, ghost prims will appear of the saved 
contained items).  These will be found and eliminated in subsequent patches.
* Not yet ready for use
2008-06-16 21:59:39 +00:00
Justin Clarke Casey 4af6286512 * Start recording asset request failures
* This includes problems such as connection failures and timeouts.  It does not include 'asset not found' replies from the asset service.
2008-06-14 17:47:25 +00:00
Justin Clarke Casey d6519924ba * refactor: catch asset service request exceptions at the AssetServerBase level rather than in the GridAssetClient
* this is to enable logging of asset request exceptions soon
2008-06-13 18:04:01 +00:00
Charles Krinke 7821cca2f5 Mantis#1514. Thank you kindly, Boscata for an InventoryServer patch
to allow the InventoryServer to work with MSSQL..
2008-06-11 14:02:16 +00:00
Justin Clarke Casey 3794f25ebd * minor: Properly clear the pushed asset cache statistics where the clear-assets command is used on the region console
* stop waiting for garbage collection when GC total memory used is requested, in case the periodic request of this lags the sim
2008-06-10 23:35:04 +00:00
Sean Dague 5f6b26d9ba provide slightly more sane defaults in the file based asset loader 2008-06-02 20:28:26 +00:00
Jeff Ames 5752c1f5c2 Formatting cleanup. 2008-05-28 03:44:49 +00:00
Charles Krinke 2cea74181a Thank you very much, Xantor for a patch that:
If a request is made for an asset which is not in the cache yet, 
but has already been requested by something else, queue up the 
callbacks on that requester instead of swamping the asset server 
with multiple requests for the same asset.
2008-05-27 13:40:00 +00:00
Justin Clarke Casey 61bba6375c * Fix mantis 1325. This is a minor issue where 'show assets' would not work fully in the region console 2008-05-22 00:49:17 +00:00
Justin Clarke Casey 1f57fd4bec * Minor: Tidy ups and logging tweaks. 2008-05-22 00:41:03 +00:00
Charles Krinke 01b5425a2d Thank you kindly, Melanie for a patch that avoids a null
ref in inventory give and also now causes items to appear
in the correct folders now, no longer in the root folder.
2008-05-19 20:05:10 +00:00
Justin Clarke Casey f6add412d6 * Refactor: Eliminate empty if clause from AssetCache.GetAsset() 2008-05-18 19:56:25 +00:00
Justin Clarke Casey 63ddbfb979 * Eliminate occurences of "Got a texture uuid ... with no sender object to handle it..." by properly dealing with the situation where a client still has queued texture requests when it logs out 2008-05-16 18:10:04 +00:00
Justin Clarke Casey c2581c9577 * Cache knowledge in the region server that the asset service has reported an asset to be missing
* This prevents repeated requests for the same missing asset to the asset server, hopefully reducing the load a little
2008-05-16 17:47:34 +00:00
Justin Clarke Casey 772f88d2e5 * Removing unnecessary LLUUID.Zero check from AssetCache
* This revision also includes a very temporary fix for the fact that NREs are received because of a missing avatar apperance in grid mode
2008-05-16 16:37:31 +00:00
Jeff Ames 65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Teravus Ovares e8478dadc8 * Experiment in Zerocoding. 2008-05-10 10:28:49 +00:00
Justin Clarke Casey 3f345bf685 * Removing polling delay for non-CAPS inventory fetch if the client has not yet received data from the inventory service
* Replaced instead with the system now used by other requests where the fetch request is placed on a queue and service when the data comes in
2008-05-09 21:33:19 +00:00
Justin Clarke Casey 6e2c7da018 * Minor: Insert utility function to format raw xml strings into indented xml for debugging purposes 2008-05-09 15:51:02 +00:00
Justin Clarke Casey fe8f9a4b25 * Restoring some initial inventory lookup polling delays in order to deal with situations seen on osgrid 2008-05-09 13:36:08 +00:00
Adam Frisby 4fa0cbdfbb * You can haz more spring cleaning.
* Eventually this codebase will be clean. >_>
2008-05-08 05:35:01 +00:00
Adam Frisby ba8ff761c0 * Reduced sleep durations in a number of files. 2008-05-08 04:47:38 +00:00
Justin Clarke Casey e35e83312d * Increase number of poll attempts an inventory items request will make under CAPS 2008-05-07 15:53:27 +00:00
Justin Clarke Casey 5ab392d0ee * Refactor: A final root folder special case removal, this time in HandleFetchInventoryDescendents[CAPS] 2008-05-04 01:14:21 +00:00
Justin Clarke Casey 6c62985fd5 * Refactor: Do the root case removal thing again, this time in ItemReceive() 2008-05-04 01:04:49 +00:00
Justin Clarke Casey 9646258fdf * Refactor: Simplify CachedUserInfo.FolderReceive() by removing root folder special case 2008-05-04 00:53:01 +00:00
Justin Clarke Casey 0f716e3ac4 * Simplify CreateFolder() by folding previous special root case into FindFolder() 2008-05-04 00:06:34 +00:00
Justin Clarke Casey 27a7391d6b * Add ability to defer item actions for AddItem() and DeleteItem(). This won't be useful until we let the client cache (again?) 2008-05-03 23:33:20 +00:00
Justin Clarke Casey 56827894e9 * Refactor RemoveItem() 2008-05-03 23:23:46 +00:00
Justin Clarke Casey 688940e810 * Refactor: Renaming item and folder tree search methods to have Find*() prefixes 2008-05-03 22:39:33 +00:00
Justin Clarke Casey 068163b14b * Refactor: Move MoveFolder() and PurgeFolder() into CachedUserInfo (which arguably should be split) 2008-05-03 19:50:49 +00:00
Justin Clarke Casey 45430a5403 * Refactor: move UpdateFolder into CachedUserInfo 2008-05-03 19:27:34 +00:00
Justin Clarke Casey 45a71bb045 * Make user profile cache service complain if the caller assumes a profile exists when in fact it does not 2008-05-03 19:12:17 +00:00
Justin Clarke Casey 1087542705 * Refactor: Move bulk of CreateFolder from UserProfileCacheService into CachedUserInfo
* Remove unused/superseded methods from GridInventoryService
2008-05-03 18:57:02 +00:00
Justin Clarke Casey a5dfca8958 * Refactor: remove redundant userId parameter from UpdateItem() and DeleteItem()
* Put warning in remove folder method about non implementation (not that this is used anyway - may be legacy)
2008-05-03 18:13:32 +00:00
Justin Clarke Casey f5609ba452 * Refactor: remove pointless agentId parameter from CachedUserInfo.AddItem()
* Remove old framework asset transactions files which were region modularized
2008-05-03 18:01:38 +00:00
Justin Clarke Casey a81edef2b9 * Refactor: Remove redundant userID from further up the inventory request chain 2008-05-01 21:22:03 +00:00
Justin Clarke Casey 1de6cffa28 * Refactor: Remove the unused userID parameter that was being passed into almost every inventory method
* This allows lots of redundant inventory methods with only slightly different names to be eliminated.
2008-05-01 20:47:33 +00:00
Sean Dague cc5351ec1b remove the db4o asset server 2008-05-01 20:33:43 +00:00
Adam Frisby 01f31fd933 * Breaking all the code, breaking all the code..!
* Made a bunch more members static, removed some dead code, general cleaning.
2008-05-01 16:23:53 +00:00
Adam Frisby 4692e92312 * Assorted spring cleanings. 2008-05-01 14:45:56 +00:00
Justin Clarke Casey 3508298ddf * Refactor: Rename InventoryFolderImpl.HasSubFolder() to GetDescendentFolder() 2008-04-30 20:04:06 +00:00
Justin Clarke Casey 3984a7fda1 * Resolve mantis 1068, 1095
* The resolution takes the form of not crashing the session if the folder the user is attempting to add already exists (e.g. there is one already with the same UUID).
* Printing out warnings instead
2008-04-30 19:55:45 +00:00
Justin Clarke Casey 9817363b93 * Completely inconsequential inventory odds and ends (actual impact - only one log message changed) 2008-04-30 19:08:48 +00:00
Teravus Ovares a9cc76e0ef * Long awaited patch from A_Biondi Mantis 923. Kept alive by Melanie. Thanks A_Biondi and Melanie!
* This builds but might not work.   JustinCC will examine..   it may work out of the box.
2008-04-30 16:08:24 +00:00
Teravus Ovares 911e63765c * Single Attachments now work from inventory. You can attach from inventory and detach from inventory.
* Detaching from right clicking in world, detaches to your inventory.
* If you go up to a prim and attach it from in world, it appears in your inventory.
* Attachment placement is saved when you detach them. 
* Choosing wear remembers your last attachment point from inventory.
* Wrote a method to update an inventory item's asset and sends the updated inventory item to the Client
* Wrote a recursive method to find the folder of a known existing inventory item.
* Removed a block on physics object position on creation.  This might crash a region or two, let us know via Mantis if your region crashes because of a physics out of bounds error.
* Drop doesn't work.  The menu item doesn't even come up.  Don't know why :P.
2008-04-27 20:10:28 +00:00
Justin Clarke Casey accd89b3f1 * First draft implementation of copying prim inventory items back to agent inventory
* Now, if you own an item in a prim, you should be able to successfully drag it back into your inventory
* Temporarily, users which are not owners of the item cannot copy it, even if 'everyone can copy' is set
* This is pending fixes/implementation of upstream permission implementation
2008-04-26 20:31:01 +00:00
Justin Clarke Casey 40176c12f9 * Implement full grid mode Trash empty
* Now, emptying the trash should remove folders and the items they contain as well as items which were not in a subfolder.
* This will only work once both the region and grid servers have reached this revision.
* You may also need to clear your cache before this will work
* Refactoring to follow.
2008-04-23 22:13:57 +00:00
Sean Dague a1cc0e436f changes to allow asset_source to be specified in the opensim.ini
this will work for sqlite and nhibernate, but will be ignored for
mysql and mssql (reverting to their ini files) until someone writes
that bit.
2008-04-23 19:13:06 +00:00
Justin Clarke Casey 4db839c3b8 * Implement proper emptying of trashcan on standalone
* On standalone, folders (and their items) should now be persistently deleted on trash emptying, as well as immediate child items
* An implementation for grid mode will follow.
2008-04-23 17:04:15 +00:00
Justin Clarke Casey 41f9bbc26d * Fix mantis #842 - folders which are created but left named "New Folder" in places other than directly under "My Inventory" should now be stored 2008-04-23 11:14:19 +00:00
Justin Clarke Casey cd29f90418 * Add folders and items locking in external manipulations of InventoryFolderImpl carried out by CachedUserInfo
* These will do temporarily pending refactoring
2008-04-22 20:59:08 +00:00
Justin Clarke Casey 8d8b4a314f * Add DeleteAllContents() method to InventoryFolderImpl - not yet used but will be soon
* Add locking to InventoryFolderImpl class - need more though.
2008-04-22 20:47:54 +00:00
Justin Clarke Casey fc6e23371f * Extend functionality to better handle delayed inventory service transfers to create folder, move folder and purge folder.
* Old 1.18 get folder functionality requires a little more consideration
2008-04-22 20:24:48 +00:00
Justin Clarke Casey 68c6b6ece3 * Replace previous specific inventory callback code with generic alternative 2008-04-22 18:58:09 +00:00
Justin Clarke Casey 269a2e4b88 * Allow folder renaming to complete after an agent inventory has been received by a region from the inventory service
* This replaces the old behaviour of failing straight away, which could cause lost updates if the inventory service was slow in responding
* This is the first baby step to making all inventory requests behave this way, to reduce inventory lossage
2008-04-22 17:24:13 +00:00
Adam Frisby fef3b36894 * Optimised using statements and namespace references across entire project (this took a while to run). 2008-04-21 07:09:17 +00:00
Justin Clarke Casey 3d3eec436a * Remove user profile from cache when they log out from a region.
* A much more significant fix is required to clean up the cache when a user moves out of a region, but really better handling of delayed inventory cache updates needs to be 
written first, and possibly better affinity to cut down agent inventory requests when the move is between two regions hosted on the same server.
2008-04-20 20:36:06 +00:00
Justin Clarke Casey 8b177bf4a8 * Tweak inventory login failure message to point to the region owner as first point of call rather than the grid owner 2008-04-20 19:39:24 +00:00