the attached patch set adds the (still work-in-progress but already
working) RestPlugin base class and the RestRegionPlugin code. we are using
XML serialization.
currently working:
GET /admin/regions/ -> returns UUID list of known regions
GET /admin/regions/<UUID> -> returns detailed region information
we'll be adding support for POST/DELETE/PUT and also for
/admin/regions/<UUID>/name etc.
* 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
This patch just tightens up console handling in BasOpenSimServer
and removes (or redirects) a couple of messages that were being issued
using Console.Writeline.
* 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
This patch makes the "Show in Search" checkbox on the viewer work. Additionally, I also discovered that show-in-search objects use the JointWheel flag, so this patch currently uses that flag. LibSL needs to add a flag to enum LLObject.ObjectFlags, "IncludeSearch = 32768" so we aren't using a legacy flag.
Additionally this patch also contains a small fix to BaseHTTPServer that lets the response content-type to be something other than text/html. For some reason this didn't get submitted with the DataSnapshot merge.
* Should work in multi-region standalone and grid modes
* This should also solve other non-home region caps issues (map requests, RC client inventory requests, etc)
* We now pass CAPS information on to the destination region on region crossing, and set up a CAPS object when an agent becomes a master
* Current limitation is that this will only work if your http_listener_port is 9000
* This is a very early code cut (lots of bad practice, hard coding and inefficiency). However, I wanted to get this out there for feedback and my own sanity. Next few patches will clean up the mess.
* This will make it more obvious if one accidentally starts one's region server in standalone rather than grid mode but then tries to login to a grid (as I am wont to do)
* We are now sending back a fault code (-32601) if no xmlrpc method is found rather than an ordinary message
* The immediate upshot is that "show uptime" from the console will now show uptime on all server types (user, asset, grid, etc)
* DEV: This refactoring is far from complete - only just enough to makes the "show uptime" command common accross the servers. More is needed, but in this case it's somewhat like eating cabbage, which I prefer not to do all at once
* I intended to think about refactoring the servers to use this common base class, but temporary laziness won out.
* I'm leaving this here as a reminder/mind poke and for reasons of laziness (again)
* If people object to me leaving this kind of thing lying around, please say
* Typing 'stats' on the command line will given total number of successful logins today and yesterday
* A little bit more to come, probably
* Refactoring will follow next
* Cleaned up copyright notices in AssemblyInfo.cs's
* Added Copyright headers to a bunch of files missing them
* Replaced several common string instances with a static constant to prevent reallocation of the same strings thousands of times. "" -> String.Empty is the first such candidate.
* Don't forget, you need -loginuri *and* -loginpage
* Ex: -loginpage http://10.1.1.2:8002/?method=login -loginuri http://10.1.1.2:8002/
* The ?method=login is important, don't forget to add it
* If you customize your http_loginform.html file, be sure to keep the form post address as is.
* Added the web_login_key to the users table
* Added happy configurable http error message pages
* This update is large enough to have 'awe' value.. so backup your users or weep.
* Not tested on MSSQL, even though I added code to update the tables!
* I'm keeping it deactivated until some issues are resolved.
* I'm patching it in deactivated so the patch doesn't get outdated
* I've deactivated it by commenting out the handler for the application/xml+llsd content type.
* While I've tested this as much as possible on my setup and found the deactivated code doesn't cause any problems, consider this update experimental (event though it's deactivated)
* Added SSL Option to User Server to allow logins to be done via SSL.
* Added sane handling for when Remote Admin Plugin configuration is not found
* Added some performance boosts to an area of libTerrain which was highlighted in profiling.
To use , both the user server and Inventory server need to be running this latest revision. (older regions should be able to still be used, just the user won't have inventory on them). Also and HERE IS THE BIG BREAK ISSUE, currently, so that the initial inventory details for a user are added to the inventory db , you need to recreate the accounts using the user server "create user" feature. It should be quite easy to manual populate the inventory database instead but I someone else will need to look into that) Also I've only tested using SQLite as the database provider, there is a Mysql inventory provider but I don't know if it works (SQLite is set as default, so you will need to change it in the inventory server config.xml)
* Sqlite Storage Engine now supports terrain -- however be aware that every terrain revision stored will at 512KB to your database file. At the moment it is storing every revision from the first.
* Fixed an issue where by noverbose mode would display lots of useless junk. Noverbose mode is now quite usable.
* Fixed a whole bunch of console message issues such as naming and categorisation
* Removed legacy REST handling
* Created two custom IStreamHandlers for asset up/download
* Removed quite a lot of double and triple encodings, trying to work towards binary only and direct write into storage.
* Introduced BaseStreamHandler with GetParam() and some other goodies
* Implemented RestStreamHandler
* Some caps functions now use it
* Moved out RestMethodEntry from httpserver
* The IStreamHandler interface now reports required method and Content-Type
* Updated SimpleApp with various introduced dependencies
* Extracted ScenePrescence creation in Scene
* removed try-catchall from UserManagerBase (that actually hid a bug)
* Refactored RegionInfo
* handle is calculated
* it will explode upon accessing x,y,ip,port,externalip if not explicitly initialized
* Removed superfluous 'ref' keywords
* Removed a shitload of 'catch Exception e' that causes build warnings
* Lots of small refactorings, renames et c
* Ignored some bins