Commit Graph

625 Commits

Author SHA1 Message Date
Dr Scofield
caee0288fb * adding XmppPresenceStanza and deserialization/reification support
having reached the intermediate level of .NET's XmlSudoku, i've
  now figured out how to do deserialization using different 
  XmlSerializers (this stuff begins to grow on me, sigh).

  [still not used code, work-in-progress]

* adding convenience property on OSHttpRequest.cs (from awebb)
2008-06-04 18:09:55 +00:00
Jeff Ames
4ec4e16c80 Formatting cleanup, minor refactoring, svn properties. 2008-06-04 09:59:27 +00:00
Justin Clarke Casey
4453c8bc5c * experimental: Make OpenSim archiver save and reload all prim textures when not all faces have the same texture 2008-06-02 17:23:13 +00:00
Justin Clarke Casey
a1395b90be * Add 'show version' help information into base OpenSim server 2008-06-02 16:28:04 +00:00
Justin Clarke Casey
fbaeb081aa * Move most bookending startup/shutdown messages to BaseOpenSimServer so they appear in non-console servers too 2008-06-01 02:02:20 +00:00
Justin Clarke Casey
15d41c2fc2 * Fix build break by eliminating remaining IScenePermissions references - must remember to nant clean
* Hook all server startups into base opensim server startup method
2008-06-01 01:34:46 +00:00
Justin Clarke Casey
45fef8589d * Move log version printing up into BaseOpenSimServer 2008-06-01 01:22:19 +00:00
Justin Clarke Casey
8cb5ec5fdd * Make version information common to all servers
* Now all servers respond to the "show version" command on the console
2008-05-31 20:35:12 +00:00
Teravus Ovares
febe78d062 * Implements UserServer logoff in a few situations
* User tries to log-in but is already logged in.  Userserver will send message to simulator user was in to log the user out there.
* From the UserServer, admin types 'logoff-user firstname lastname message'.
* Some regions may not get the message because they're not updated yet.
2008-05-31 12:18:29 +00:00
Jeff Ames
0462510956 Update svn properties. Formatting cleanup. 2008-05-30 08:35:57 +00:00
Dr Scofield
d7ec686691 this is a snapshot of the OSHttpServer work-in-progress. it's an initial skeleton,
far from complete, just want to check in early and often.
2008-05-29 15:46:54 +00:00
Sean Dague
22c7845e0c attempting to get to the bottom of unresponsive grids servers by
adding back in a few messages on exceptions.
2008-05-29 15:01:26 +00:00
Jeff Ames
5752c1f5c2 Formatting cleanup. 2008-05-28 03:44:49 +00:00
Jeff Ames
5d77625e9a Update svn properties. Formatting cleanup. 2008-05-25 23:27:38 +00:00
Dr Scofield
a97fa3f43e changing more 'raw' HTTP status codes to OSHttpStatusCodes. 2008-05-22 12:59:42 +00:00
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
a53cea6b7e i'm extending the RestStreamHandler.Handler(...) signature to actually
provide OSHttpRequest and OSHttpResponse to our REST handler. 

also, this adds proper RestPlugin.IsGod() checking against the X-OpenSim-Godkey
HTTP request header.

last, i added XML doc comments to RestPlugin.cs
2008-05-20 16:51:45 +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
4b622ec881 (from awebb)
Fixes a bug in BaseRequestHandler.

If the length of the patter is equal to, or greater than, the length of
the actual request path, then an exception is thrown. System using is
added to support use of String.Empty. Exception is used to ensure most
efficient operation on (assumed to be most common) successful case.
2008-05-19 18:30:25 +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
Justin Clarke Casey
0f50162961 * Refactor additional stats collection common code into base opensim server
* If extra stats not sent to the viewer are available on an opensim server, they are now uniformly accessible using the 'show stats' command
2008-05-14 21:53:40 +00:00
Sean Dague
4a07038bbe From: Dr Scofield <DrScofield@xyzzyxyzzy.net>
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.
2008-05-14 19:13:54 +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
Justin Clarke Casey
b4d128c811 From: Alan M Webb <awebb@vnet.ibm.com>
This patch just tightens up console handling in BasOpenSimServer
and removes (or redirects) a couple of messages that were being issued
using Console.Writeline.
2008-05-12 13:39:46 +00:00
Justin Clarke Casey
313a635d1e * Fix opensim region server shutdown. 2008-05-09 13:21:12 +00:00
Justin Clarke Casey
250fb6f5db * Move shutdown processing to base OpenSimServer, overriding the method where appropriate
* This also means that the command quit (as well as shutdown) will now close down grid servers (instead of only being in place for the region server)
2008-05-07 16:24:15 +00:00
Adam Frisby
67bbfadc06 * More refactorings of UDPServer.
* Removed all references where possible.
* Renamed lots of variables from UDPServerXYZ to clientServerXYZ
2008-05-02 18:26:19 +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
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
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
b3f783ae05 * Reduce publicly exposed fields on InventoryCollection, which was causing duplicate sets of inventory data to be sent over the grid
* Won't actually fix anything, since we were handling the problem anyway
* Also add more doc, fix up debugging messages, etc
2008-04-11 20:37:26 +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
lbsa71
7f11079f57 * Refactored out common http handler operations 2008-03-28 21:43:46 +00:00
Justin Clarke Casey
0609970f2e * Correct asset type of Lost and Found folder - this might stop it appearing twice
* Other minor corrections to initial inventory contents
* These will only take affect for new users
2008-03-27 18:26:01 +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
Justin Clarke Casey
78e24380c8 * Stop grid inventory network failures crashing the client session
* Now the operation will just fail and post a message to the log instead, which may be mysterious to the client but isn't so brutal
2008-03-18 19:52:07 +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
Jeff Ames
a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +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