Commit Graph

516 Commits (d75cacb050777493bfa880f5fa694590cba0ebe4)

Author SHA1 Message Date
Dr Scofield d725d1208b adding OSHttpRequest and OSHttpResponse which wrap HttpListenerRequest and HttpListenerResponse respectively.
enhancing IStreamHandler and IStreamedHandler interfaces so that OSHttp{Request,Response} get passed in, 
allowing RestHandlers to set response status code, redirections, etc.
2008-05-19 11:38:35 +00:00
Justin Clarke Casey f6add412d6 * Refactor: Eliminate empty if clause from AssetCache.GetAsset() 2008-05-18 19:56:25 +00:00
Teravus Ovares a510033df5 * Applying patch in mantis 0001293: [PATCH] Fix a bug that corrupts uploaded assets on disk write from Melane. Thanks Melanie! 2008-05-16 22:50:37 +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
Sean Dague 4ff4475d02 remove my UserAppearance object, switch all code to use
AvatarAppearance instead.
2008-05-15 18:42:27 +00:00
Justin Clarke Casey 1ef37b196c * Minor: Fussy little wording change on inventory service failure 2008-05-14 22:30:43 +00:00
Justin Clarke Casey 8fe9943293 From: Dr Schofield <hud@zurich.ibm.com>
Rename SearializableRegionInfo to SerializableRegionInfo (class was already named correctly)
2008-05-14 17:03:25 +00:00
Jeff Ames c995d60d37 Formatting cleanup. 2008-05-14 05:11:23 +00:00
Justin Clarke Casey 550018f02d * As part of the region registration process, the grid service now requests the status of the region using the region http uri just passed in
* If the status cannot be retrieved, then the region startup will terminate.
* The aim of this is for earlier detection of situations where the region can send messages out but cannot accept incoming requests (often due to firewall issues)
* This is currently an extremely simplistic check which completely trusts whatever http uri is given by the region
* This contact may be problematic, though since the user service needs to be able to contact the region http uri, it doesn't seem unreasonable for the grid to have to be able to do so too at this stage
* This change will require a prebuild
2008-05-13 13:36:21 +00:00
Justin Clarke Casey d3fb6039ca * If a region running in grid mode fails to login to the grid service, startup will now terminate instead of carrying on (and thus burying the error message) 2008-05-12 16:57:56 +00:00
Teravus Ovares e8478dadc8 * Experiment in Zerocoding. 2008-05-10 10:28:49 +00:00
Justin Clarke Casey 57fea65c82 * Revert caps fetch inventory service back to UDP for now
* Linden client 1.19.1.4 appears to be happy using UDP for this request again, and Linden's own servers (1.21) don't appear to be supplying the CAPS version currently
* This should for now fix the bug where texture selection in the edit window both shows only already open textures, and later stops subsequent inventory requests from working.
2008-05-09 21:50:22 +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 d9dffc4a9a From: Michael Osias <mosias@us.ibm.com>
Stop .net generating ambiguous operator errors when two integers are compared for equality in LSL
2008-05-09 17:23:27 +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
Teravus Ovares e8acb49fef * For your fragging desire, damage enabled land works, but watch out!, life does not regenerate until you're dead! 2008-05-03 15:39:40 +00:00
Sean Dague 1b7f1c956c plumb in connection string to the user database paths. mysql and mssql
just ignore this for now, but it lets us get connect strings to sqlite
and nhibernate.
2008-05-02 18:59:12 +00:00
Sean Dague 4a8f432441 minor refactoring. Change getName and GetVersion methods (yes the had different casings)
to Name and Version properties for the User stores.
2008-05-02 12:35:24 +00:00
Jeff Ames 058191e6cc Update svn properties. 2008-05-02 03:34:06 +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 e41232bac5 create pass through of UserManagerBase to plugin calls 2008-05-01 20:36:43 +00:00
Sean Dague cc5351ec1b remove the db4o asset server 2008-05-01 20:33:43 +00:00
Sean Dague 70f7672dad added in IUserService functions. These don't do anything yet,
but the set all compiles together fine, and it provides people
an idea of where we are heading.
2008-05-01 18:36: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 5da028f6ef * Removing duplicate files that somehow got undeleted from TortoiseSVN. Fixed. 2008-05-01 15:46:46 +00:00
Adam Frisby a1c8aa4050 * Cleaned namespaces of entire solution. OpenSim directories now correspond with namespaces. 2008-05-01 15:36:39 +00:00
Adam Frisby 4692e92312 * Assorted spring cleanings. 2008-05-01 14:45:56 +00:00
Adam Frisby 25a49ac4de * Spring cleaned a bunch of '//TODO: unused' marked functions. 2008-04-30 23:11:07 +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
Sean Dague dd96158afe move IUserService into the OpenSim.Framework.Communications assembly
because all the other I***Service interfaces are there.
2008-04-30 15:03:37 +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 3dd98a112f allow for Inventory database source to be specified in main
configs.  This works with sqlite and nhibernate backends, and
stays with default seperate ini files for mysql and mssql until
someone writes those.
2008-04-23 20:48:23 +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
Adam Frisby 2b886ab9f0 * Fix for mantis #1025 - Region always reports that location is unavailable. Thanks Lulurun. 2008-04-23 12:00:23 +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
Sean Dague bf1580fba4 From: Dr Scofield <hud@zurich.ibm.com>
the attached patch set is centered around RemoteAdminPlugin and focuses
mainly on making it more robust (i.e. more parameter checking and better
error reporting) but also we've re-implemented the LoadTerrain stuff that
got disabled during the terrain code reworking:

   * missing PostInitialize() calls on region modules that were loaded
     for regions created via RemoteAdmin's CreateRegion XmlRpc call
   * re-implements RemoteAdmin's LoadTerrain XmlRpc call (probably lost
     during the TerrainModule rework)
   * adds lots more parameter checking and error reporting to RemoteAdmin
   * adds a read-only property to RegionApplicationBase so that we can
     access the CommsManager
   * adds Exceptions to TerrainModule so that we get better error case
     feedback (and can report more meaningful errors in turn)
   * adds a CheckForTerrainUpdate() call to
     TerrainModule.LoadFromFile() to make terrain changes effective
   * adds TryGetCurrentScene(LLUUID) to SceneManager so that we can
     retrieve Scenes not only by name but also by LLUUID


   cheers,
   dr scofield
2008-04-21 12:42:56 +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
Justin Clarke Casey e755727a0f * Change lazy user inventory creation on first login to synchronous rather than async.
* Add more error checking so that we don't proceed if there has been a problem with inventory retrieval
2008-04-20 18:45:03 +00:00
Justin Clarke Casey d3cd2b0ae4 * On grid mode, if the inventory service is responding but returning an empty response to a whole agent inventory request, then post an inventory login failure message.
IMO, this is better than allowing the agent to login with an apparantly blank inventory.
2008-04-20 18:19:34 +00:00
Teravus Ovares dd4deebbcb * Re-Fixed caps
* This fixes chi11ken's/OpenViewer's libsl cap issue.
2008-04-17 19:42:54 +00:00
Jeff Ames fe3265f491 Update svn properties. Add copyright info to some source files. 2008-04-17 12:16:19 +00:00
Teravus Ovares e777f88028 * A tweak of the caps system so that new caps have random paths instead of a fixed path
* This allows caps requests to be routed to regions where the agent is currently a root agent instead of the region that they logged into as it did previously.   
* This fixes a wide variety of bugs related to 'can't do X once i've crossed a border'.
* The first seed cap request fails, the second one works.  (this generates an error message on the console)
* Experimental.
2008-04-15 23:10:12 +00:00
Justin Clarke Casey 379ac9c92a * Make it easier to follow logins on the user server by changing and tidying up log messages 2008-04-15 22:41:34 +00:00
Justin Clarke Casey 39165f3de4 * Send a meaningful response to both the user server console and the client if a login fails because the inventory service has failed. 2008-04-15 18:10:42 +00:00
Sean Dague 6f8ff32630 From: Dr Scofield <hud@zurich.ibm.com>
ansgar and i have been working on an asterisk voice module that will allow
   us to couple opensim with an asterisk VoIP gateway.

   the patch below consists of
     * AsteriskVoiceModule region module: alternative to the plain-vanilla
       VoiceModule, will make XmlRpc calls out to an asterisk-opensim
       frontend
     * asterisk-opensim.py frontend, living in share/python/asterisk, takes
       XmlRpc calls from the AsteriskVoiceModule
          * account_update: to update/create a new SIP account (on
            ProvisionVoiceAccountRequest)
          * region_update: to update/create a new "region" conference call
            (on ParcelVoiceInfo)
     * a asterisk-opensim test client, living in share/python/asterisk, to
       exercise astersik-opensim.py
   this still does not give us voice in OpenSim, but it's another step on
   this path...
2008-04-15 14:24:15 +00:00
Justin Clarke Casey b7ae8701ce * Working towards notifying the client if the inventory service has failed, rather than simply returning 0 items.
* This is very early support which would only be triggered in a rather unlikely case (if the user server correctly received an inventory skeleton, but later on failed to return the whole inventory in a timely manner.  Also, this only applies to the 1.19.1.4 client onwards
* Code cleanup and support for other failure cases (failure of inventory caching on region crossing, failure to actually add a folder/item, etc, should follow.
2008-04-14 18:43:23 +00:00
Teravus Ovares e21886eea0 * Fixed a few warnings.
* Added license info to a few files it was missing from.
* Fleshed out the landbuy interfaces
* If you add '-helperuri http://127.0.0.1:9000/' to your list of parameters you tell the client to use when you start it up you can transfer ownership of parcels now in standalone.  Structured gridmode requires a lot more work, see the documentation in the example money module.   The example money module is not secure especially in standalone mode.
2008-04-14 17:13:38 +00:00
Justin Clarke Casey 665c5d89f8 * Correct comment from previous patch - I'm not reversing mantis #912 at all, which was in an entirely different location 2008-04-13 23:48:46 +00:00
Justin Clarke Casey eacba916ec * Reverse mantis #912 since it was causing inventory to disappear from the root folder on 1.19.1.4 non-cache clear relog.
* The folder version numbers probably do need to be non-zero, but there is a further subtlety of the protocol to understand first
2008-04-13 23:38:51 +00:00
Justin Clarke Casey 451a5bbf30 * Put in crude poll waiting for 60 seconds for delayed user inventory delivery from the inventory service
* This will reduce failures where the inventory server is simply slow
* Still need to properly inform the user if the inventory service has failed altogether
2008-04-13 22:09:07 +00:00
Justin Clarke Casey 7bfd7e6f08 * Remove the worst excesses of my inventory debugging code 2008-04-11 18:58:09 +00:00
Justin Clarke Casey 7ac7f79f88 * Eliminate a class of errors where an inventory request could be made before the region had completely received the inventory for the user.
* A much larger race condition where the inventory request could be made before the region gets any data at all will also be fixed in the near future.
* This change also fixes a regression from two patches ago where items stopped appearing in standalone inventory
2008-04-11 18:46:54 +00:00
Justin Clarke Casey 649f304e76 * Minor inventory code cleanup following on from last patch 2008-04-11 18:19:21 +00:00
Justin Clarke Casey a5176c2e2c * Change inventory async response deliver to deliver all items and folders at once, rather than each individual
* This is required in order to work towards eliminating some inventory race conditions and to better deal with situations where a grid inventory server is slow or not responding.
2008-04-11 18:13:10 +00:00
Justin Clarke Casey e26d4fc085 * minor: replace test of CachedUserInfo.RootFolder != null with something more readable, and make RootFolder get only 2008-04-11 17:02:20 +00:00
Justin Clarke Casey 205b95f2e8 * minor documenting, cleanup, renaming in user profile cache service 2008-04-11 16:49:20 +00:00
Justin Clarke Casey 576db5b72a * documenting and minor refactoring in UserProfileCacheService 2008-04-11 16:30:58 +00:00
Justin Clarke Casey 9a7717743b refactor: eliminate method in UserProfileCacheService 2008-04-11 16:13:33 +00:00
Justin Clarke Casey b41abbd50e * Minor: really just comment and subsequent indentation adjustment. Preparation for handling inventory problems where the inventory server receives a request and never responds, or is late in responding 2008-04-10 17:44:19 +00:00
Justin Clarke Casey 5ad4c79a4e * Refactor GetUsersInventory() 2008-04-10 16:04:19 +00:00
Charles Krinke 4bdb4a2646 Thank you kindly, A_Biondi for a patch that:
Handles the CreateItem cap request for all wearables, 
setting the proper value in inType and assType.
2008-04-10 15:32:09 +00:00
Justin Clarke Casey ba132f3a0b * Minor: get CreateNewUserInventory() to return true on success 2008-04-10 15:28:52 +00:00
Justin Clarke Casey ded704ef1f * Minor inventory message cleanup and documentation 2008-04-10 15:22:01 +00:00
Sean Dague 55ac1c6dce renaming of attributes in UserAgentData for readability 2008-04-10 14:50:52 +00:00
Sean Dague ef7dfae41c changing UserAgentData to use properties. This caused more
grief than expected, as monodevelop doesn't like to refactor 
properties of properties.
2008-04-10 14:37:17 +00:00
Sean Dague 25fea01b92 further renaming of properties for clarity 2008-04-10 14:09:30 +00:00