Commit Graph

66 Commits

Author SHA1 Message Date
Dr Scofield
bdc792d319 here are further enhancements to the IHttpAgentHandler and to BaseHttpServer (from awebb)
i've added the OSHttpStatusCodes enumeration of HTTP status codes, have adapted 
BaseHttpServer to use those.

then RestPlugin now has proper Failure handling returning proper HTTP status
codes. Regions/POSTHandler is work-in-progress.
2008-05-22 12:00:01 +00:00
Dr Scofield
60ceef7ea2 my last "simplification" of the the if-then-else logic in BaseHttpServer placed the return in
the "if (request.UserAgent != null)" branch in the wrong place: as a result BaseHttpServer would not do 
anything if the user agent header field was present....ARGH! BAAAAAAD.
2008-05-20 12:58:27 +00:00
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