Commit Graph

114 Commits (b91857b8f7809b9bddfa5d36c1ccf84e8142d22b)

Author SHA1 Message Date
Dr Scofield 3e8adc0d78 (from awebb)
This patch adds an additional handler to the existing BaseHttpServer. 
It does not affect any of the existing behaviors except insofar as the 
new handler may be selected.

It is selected first because its Agent-oriented nature means that it 
should not be pre-empted.  The new handler type is defined by IHttpAgentHandler 
in Framework/Servers and has two interface methods: Match and Handle.

The Match function returns a boolean result based upon examination of 
information presented in the User-Agent header.

The Handle function expects to get the request and response instances 
associated with the flow. The handler is responsible for ALL activity 
associated with the request except in the event of an unhandled exception, 
in which case the HandleAgentRequest routine will generate a 500 status 
message and close the stream.

There are two immediateley apparent (and VERY easy to implement) 
improvements that could be made:

   1. The Match call could be allowed to operate over the entire 
      request context., rather than just agent identity.
   2. The Handler could return a boolean indication of whether or not 
      the request was actually handled, and if not, the remaining handler 
      mechanism could take a shot at it. This would eliminate issues 
      arising from pre-empted streams.
2008-05-19 17:35:29 +00:00
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
Jeff Ames 65c5efe43b Formatting cleanup. 2008-05-16 01:22:11 +00:00
Jeff Ames 6a1b787436 More formatting cleanup. 2008-05-14 05:33:32 +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
Adam Frisby 76d8eaa406 * Thanks to Mic Bowman for inspiring me to look at that we are still using ASCIIEncoder in places we shouldn't. 2008-05-01 18:50:44 +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 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 70233d937f * Start catching rogue SocketExceptions which occur (at least on mono) when a response stream for a request which actually required no response, is closed 2008-04-19 22:48:06 +00:00
Charles Krinke bf7e7b2c57 Thank you very much, Kmeisthax for:
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.
2008-04-16 03:55:21 +00:00
Teravus Ovares 682f4e9257 * Fixes an issue with the BaseHttpServer in Linux
* Fixes an estate naming issue
* Fixes a land issue with the landobject not reporting the proper parcel prim.
* A few other tweaks.
2008-04-15 06:21:44 +00:00
Justin Clarke Casey 48fc4ee059 * Log exceptions which make it up to the top of the http request frame, rather than having them disappear off into the ether 2008-03-31 17:34:32 +00:00
Justin Clarke Casey c1beb85315 * First draft resolution of mantis 777, 734, 389 - scripts do not save in non-home regions
* 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.
2008-03-20 20:04:45 +00:00
Jeff Ames 47180080f0 Formatting cleanup. 2008-03-18 05:16:43 +00:00
Jeff Ames 6d774339d9 More compiler warning cleanup.
Removed verbose flag, since it doesn't do anything any more.
2008-02-29 10:51:40 +00:00
lbsa71 5b3897a4af * Caught HttpListenerException and swallowed if with output
* Moved Flush into Close since it's always done in that order.
* Minor renamings
* Reversed if for clarity
2008-02-25 15:36:24 +00:00
Tedd Hansen 7102ac7769 "threads" command now works. I've added manual tracking of threads (only if compiled in DEBUG mode)... Its ugly and even requires a separate thread to track the treads, but it will be very valuable in debugging. 2008-02-21 10:43:24 +00:00
lbsa71 bf42637ee8 * Caught 'OPTIONS' verb in BaseHttpServer that would otherwise explode.
(There are actually other non-content requests too, but I didn't know what we wanted to do with them)
2008-02-20 08:04:12 +00:00
Tedd Hansen 47c909ca0a Playing "Name that thread". Adding names and isbackground=true to all threads so it will be easier to debug. 2008-02-19 12:02:53 +00:00
Justin Clarke Casey 359f84ee43 * Output XmlRpc error message if user server gets a fault response from the region server on login
* 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
2008-02-18 18:48:55 +00:00
Tedd Hansen c62328950a More exception checks and crash hints
If no scriptengine is specified then don't try to load any.
2008-02-18 14:21:51 +00:00
Jeff Ames 6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
Adam Frisby b25f9f322c * Mother of all commits:
* 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.
2008-01-15 02:09:55 +00:00
Teravus Ovares a962653e04 * After fighting with it a bit more, Opensim is now compatible with the most recent release client(RC) on the linden labs download page.
* 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.
2008-01-10 04:37:03 +00:00
Teravus Ovares 85fe8ed085 * This update enables the web_login method.
* Remember, the client doesn't support web_login to other grids in the current RC, however the next RC will.
2008-01-09 22:05:28 +00:00
Teravus Ovares e1aa83e965 * Added a hashtable based HTTP processor in preparation of the web_login_key
* 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!
2008-01-09 04:13:04 +00:00
Teravus Ovares 6e8c3ac782 * Enabling the LLSD Login method by jhurliman so libSecondLife clients work on OpenSim again. 2008-01-07 20:00:37 +00:00
Teravus Ovares db3edff5d5 * Applying jhurliman's LLSD login enablement patch.
* 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)
2008-01-05 06:05:25 +00:00
Teravus Ovares 3738bc8899 * Updates UserServer
* Updates OSG1UserServices
* Friends list is now persistent in grid mode.
* You can add, new friends and remove them
2008-01-02 00:54:50 +00:00
lbsa71 efd90b56b7 * Optimized usings
* shortened references
* Removed redundant 'this'
* Normalized EOF
2007-12-27 21:41:48 +00:00
Teravus Ovares 69cc4596b1 * Added some ugly hackish code to the user server to start implementing the new login method. You still can't yet log-in via the new method. Does not interfere with normal userserver operation, ie safe to update if you want. 2007-12-24 23:35:30 +00:00
Jeff Ames af6eb67999 saved OpenSim source code from the giant rampaging unterminated copyright notice of doom 2007-12-10 05:25:16 +00:00
Jeff Ames 4bde56457f removed some duplicate hard-coded port numbers. changed ports to uint. 2007-12-06 01:41:41 +00:00
Adam Frisby e820159fb5 * Fixed compile issue. 2007-12-04 07:56:23 +00:00
Adam Frisby 7d5f032203 * Added SSL Support to HttpListener
* 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.
2007-12-04 05:47:51 +00:00
MW ac77c32453 Attempt to fix mantis issue #82, taking prims into inventory and then rezzing them in another region. 2007-12-02 20:43:21 +00:00
MW 5ae8759de1 Added some error handling (and console output) to BaseHttpServer.
a few other bits of refactoring.
2007-12-02 18:49:42 +00:00
lbsa71 4fad66f855 * Diuerse beavtificatems 2007-11-01 19:19:05 +00:00
lbsa71 0d528e1d22 * Added a streamhandler that does streams both in and out
* The RestDeserialisehandler now does streams and returns an object instead of string
2007-10-31 12:45:03 +00:00
lbsa71 67e12b95ea * Optimized usings
* Shortened type references
* Removed redundant 'this' qualifier
2007-10-30 09:05:31 +00:00
Adam Frisby 5dad0ed729 * Return of R2162. /Take that SVN!/ 2007-10-22 21:57:32 +00:00
Sean Dague 6acaabefc3 revert r2162 as it completely clobbered all the work on
the ChatModule by MW and myself.  Couldn't find Adam online
after that rev went in.
2007-10-22 15:37:54 +00:00
Adam Frisby c4707a284f * Major ass commit.
* 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
2007-10-22 15:23:48 +00:00
lbsa71 f076c71936 * Applied tleiades patch #435 fixing HttpBaseServer ABEND (thanx!) 2007-09-24 11:20:09 +00:00
Sean Dague ffe9c9374a mass update of urls in source code to new website 2007-09-10 08:14:38 +00:00
lbsa71 7adc2212c7 * Fixed: Accessing xmlrpc with invalid xml data would crash the sim.
* Ignored some bins and gens
2007-09-10 04:30:11 +00:00
MW 217d511077 Temporary fix for the region crossing crash, Although we need to start to change and improve how we handle caps. 2007-08-15 15:24:37 +00:00
Adam Frisby 038774de30 Commit 1/2
* DB4o no longer crashes the sim on Startup
* DB4o now crashes the sim on shutdown.
* Variety of console verbosity fixes.
2007-07-29 09:37:29 +00:00
Adam Frisby 3cbc1e011d * Reduced a significant number of compiler warnings (back down to 9 for all projects combined, all 'never used' things) 2007-07-24 03:59:32 +00:00
Sean Dague 2a3c79df83 changed to native line ending encoding 2007-07-16 15:40:11 +00:00
lbsa71 8bdbdf48c7 * updated bugfixed xmlrpc for massive win
* got rid of the ugliest hack in the project
2007-07-05 18:30:30 +00:00
lbsa71 5c32b33a66 * re-fixed the utf-16 bug in xmlRpcResponse serialization
* added LLSDStreamHandler.cs to Caps (Haven't enabled it yet, though)
* removed last traces of old rest handling
2007-07-04 16:28:59 +00:00
lbsa71 6a2588454a * Removed AssetHttpServer, using BaseHttpServer instead
* 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
2007-07-04 14:12:32 +00:00
lbsa71 9a51949cb4 * Added StreamHandler support
* Implemented RestStreamHandler
* Some caps functions now use it
* Moved out RestMethodEntry from httpserver
* The IStreamHandler interface now reports required method and Content-Type
2007-07-04 11:47:32 +00:00
Adam Frisby daf7b8ec76 * Cleaning - attempting to get compiler warnings back down to zero. 2007-07-04 05:25:40 +00:00
lbsa71 8b3cb93b49 * Started work on converting BaseHttpServer to a stream dispatcher 2007-07-04 04:29:23 +00:00
lbsa71 9b6b6d05d4 * Optimized usings (the 'LL ate my scripts' commit)
* added some licensing info
2007-07-03 14:37:29 +00:00
lbsa71 71f1b2d878 * Added conceptual LlsdMethod Demo to SimpleApp (work in progress) 2007-07-02 20:44:39 +00:00
lbsa71 fcabdab7bc * Started working on LlsdMethod for BaseHttpServer
*Renamed IRestHandler.cs to RestMethod.cs which is the correct name.
2007-07-02 16:03:58 +00:00
MW 9800c05c1b Started change to having SceneObject and then that having child Primitives which in turn have a Shape object (currently PrimitiveBaseShape). The plan is only for the SceneObject to interface with the physics engines. As a physics Entity should be able to have mulitple shapes connected to it. 2007-07-01 17:26:33 +00:00
MW 14ea54b441 should now work. 2007-06-28 11:54:51 +00:00
mingchen e41eedc9ae *Some more restructuring/fixing -- should compile, but high chance I forgot to add/remove something 2007-06-27 16:39:11 +00:00
MW 646bbbc84b Some work on restructuring the namespaces / project names. Note this doesn't compile yet as not all the code has been changed to use the new namespaces. Am committing it now for feedback on the namespaces. 2007-06-27 15:28:52 +00:00