Melanie
7c0bfca7a0
Adding Avination's PollService to round out the HTTP inventory changes
2013-06-07 23:43:45 +01:00
teravus
d2367968e4
* In between the fog, a moment of clarity. This fixes mantis 6570
2013-04-04 19:10:23 -04:00
teravus
6e1b3f9951
*Yet another HTTPServer update code changes in OpenSim Libs. * This fixes a connection close issue by getting rid of the socket references * This adds a connection timeout checker to shutdown poor or evil connections and combats DOS attempts that just connect and make no complete requests and just wait. It also actually implements KeepAlive... instead of just understanding the connection header in the request... you can test by connecting and requesting a keepalive header and sending another request on the same connection. The new timeout checker closes expired keepalive sessions, just make sure you send the request within 70 seconds of connecting or the timeout checker will timeout the connection.
2013-03-16 03:14:11 -04:00
BlueWall
66d74e76b1
Add method to remove JsonRpc Handlers from the server
2013-03-03 09:40:44 -05:00
teravus
4867a7cbbf
This is the final commit that enables the Websocket handler
2013-02-07 10:27:18 -05:00
teravus
1dc09d8e8f
We're not really done here.. but we're getting there. Socket Read is working.. Still have to do Header.ToBytes and compose a websocket frame with a payload.
2013-02-05 18:02:25 -05:00
BlueWall
2841ed05cf
Merge branch 'master' of /home/opensim/var/repo/opensim
2013-01-23 08:16:18 -05:00
BlueWall
1776986dc3
Add additional return status
...
Adding additional return status for JsonRpcMethod. Now returns true/false
2013-01-23 08:14:21 -05:00
Justin Clark-Casey (justincc)
3eee991935
Explicitly stop PollServiceRequestManager() rather than relying on its destructor.
...
Hopes to address occasional shutdown failures from http://opensimulator.org/mantis/view.php?id=6503
2013-01-19 02:04:36 +00:00
BlueWall
ca3e0d67d2
Add Json-Rpc 2.0 To Registered Handlers
...
Added registration json-rpc handlers in the http server. Covers version 2.0
See: http://www.jsonrpc.org/specification
2013-01-15 10:04:16 -05:00
Justin Clark-Casey (justincc)
fdf8876e20
In BaseHttpServer.HandleRequest(), use Culture.SetCurrentCulture() rather than creating a new CultureInfo separately
2012-12-05 21:52:10 +00:00
Justin Clark-Casey (justincc)
065d6d6fe1
Delete unused BaseHttpServer.HandleAgentRequest()
2012-11-23 04:15:21 +00:00
Justin Clark-Casey (justincc)
dc5711ad62
minor: If logging full incoming HTTP data, don't deceptively print ... at the end of the body.
2012-11-20 04:10:03 +00:00
Justin Clark-Casey (justincc)
2206132ab9
minor: Get content type handler logger to log "unset" for the content type instead of blank if no content type was set.
2012-10-23 00:44:47 +01:00
Justin Clark-Casey (justincc)
542d075376
minor: Use LogIncomingToContentTypeHandler() method for incoming HTTP data where this wasn't already used.
...
This allows log level 5 (log sample or large part of incoming post data) to operate and removes copy/paste.
2012-10-23 00:39:59 +01:00
Justin Clark-Casey (justincc)
991151250d
If we're avoiding printing a long request warning for a GetTexture CAP call, check we received a request handler first since this is not guaranteed.
...
Resolves harmless logged exception when content type and generic xml rpc requests take more than 3 seconds.
2012-10-18 00:39:43 +01:00
Melanie
060d6fe8f4
Allow setting max connections for an endpoint
2012-09-30 16:30:16 +01:00
Justin Clark-Casey (justincc)
f457952755
Fix bug where debug http level 6 could not be specified. Also converts newlines at this level to '\n' to enable them to be logged.
2012-09-29 02:38:21 +01:00
Diva Canto
772aedc731
Make BaseHttpServer throws say something useful.
2012-09-22 14:01:07 -07:00
Justin Clark-Casey (justincc)
1b0abf8f0c
Comment out the long unused afaik HTTP agent handlers.
...
As far as I know, this was only used by the IBM Rest modules, much of which has been commented out for a very long time now. Other similar code uses HTTP or stream handlers instead.
So commenting this out to reduce code complexity and the need to make this facility consistent with the others where it may not be used anyway.
If this facility is actually being used then please notify me or uncomment it if you are core.
2012-09-21 00:29:13 +01:00
Justin Clark-Casey (justincc)
e29d563557
Add request number counting to incoming HTTP requests in the same way that this was already being done for outgoing HTTP requests.
...
This allows us to associate debug logging messages with the right request.
It also allows us to put a request number on 'long request' logging even if other debug logging is not enabled, which gives us some idea of whether every request is suffering this problem or only some.
This is a separate internal number not associated with any incoming number in the opensim-request-id header, this will be clarified when logging of this incoming request number is re-enabled.
This commit also adds port number to HTTP IN logging to allow us to distinguish between different request numbers on different ports.
2012-09-21 00:09:17 +01:00
Justin Clark-Casey (justincc)
a5b3989e5d
Insert a new log level 4 for HTTP IN and HTTP OUT that will log how long the request took.
...
This is only printed if debug http level >= 4 and the request didn't take more than the time considered 'long', in which case the existing log message is printed.
This displaces the previous log levels 4 and 5 which are now 5 and 6 respectively.
2012-09-20 23:18:19 +01:00
Justin Clark-Casey (justincc)
387a1bb283
Add ability to turn on/off logging of outgoing HTTP requests flowing through WebUtil.
...
This is for debugging purposes.
This is controlled via the "debug http" command which can already log incoming requests.
This now gains a mandatory parameter of in, out or all to control what is logged.
Log messages are also shortened and labelled and HTTP IN or HTTP OUT to be consistent with existing UDP PACKET IN and PACKET OUT messages.
2012-09-20 23:17:44 +01:00
Justin Clark-Casey (justincc)
7df7b86ec5
Fix bug in logging sample input at debug http level 4.
...
Also converts newlines to "\n" text.
2012-09-12 23:01:07 +01:00
Justin Clark-Casey (justincc)
25111e703f
Add levels 4 and 5 to "debug http" console command that will log a sample of incoming request data and the entire incoming data respectively.
...
See "help debug http" for more details.
2012-09-11 21:48:51 +01:00
Justin Clark-Casey (justincc)
5aec0ff207
Move Watchdog and MemoryWatchdog classes into OpenSim.Framework.Monitoring with other monitoring code from OpenSim.Framework
2012-07-25 23:27:00 +01:00
Justin Clark-Casey (justincc)
94517c8d5c
Make the "debug http" command available for robust as well as the simulator. This allows one to see incoming requests as they happen.
...
This required making everything use the common MainServer class for registering and retrieving http servers, rather than duplicate structures.
2012-06-15 02:51:52 +01:00
Justin Clark-Casey (justincc)
257b1b517d
Add main instance to internal MainServer.m_Servers list to simplify internal logic.
...
This does require the server to be added before it is set as the main Instance
2012-06-15 02:03:50 +01:00
Justin Clark-Casey (justincc)
478acfff34
When setting debug http level, do this for all known http servers, not just the main instance.
2012-06-15 01:24:36 +01:00
Justin Clark-Casey (justincc)
9825861f4a
Shuffle "debug http" levels so that 1 and 2 now cause different levels of warn to be logged if we receive invalid xml for xmlrpc.
2012-06-14 23:46:09 +01:00
Justin Clark-Casey (justincc)
f4b02f8e39
Fix a regression in BaseHttpServer.HandleXmlRpcRequests() from recent c6e3752
...
Accidentally make responseString null by default instead of String.Empty.
It needs to be something in case the XmlRpcRequest deserialize throws an exception due to bad xml (a failure which we silently swallow!)
2012-06-14 04:29:15 +01:00
Justin Clark-Casey (justincc)
c6e375291a
Don't include time to transmit response back to requester when assessing slow handling of requests.
...
This is to avoid logging a 'slow' request when the source of delay is the viewer in processing a response.
This is not something we can do much about on the server end - it's server-side delay that we're interested in.
To ensure consistency, this commit also had to refactor and simplify inbound non-poll network request handling, though there should be no functional change.
IOSHttpResponse no longer exposes the Send() method, only classes in OpenSim.Framework.Servers.HttpServer should be doing this.
Only the GetTextureHandler was sending its own response. Now it leaves this to BaseHttpServer, like all other core handlers.
2012-06-13 00:03:44 +01:00
Justin Clark-Casey (justincc)
6987aef38d
Improve logging on the prim inventory script asset request path for future use.
...
This adds name and description of the request handler to http request logging when DebugLevel >= 1
2012-05-09 23:12:30 +01:00
Oren Hurvitz
15844da3af
Log the full exception when errors occur in BaseHttpServer
2012-05-07 19:56:00 +01:00
Justin Clark-Casey (justincc)
fb99ee6774
minor: Tweak BaseHttpServer message to make it clear that this relates to slow handling of inbound requests.
2012-05-04 01:16:56 +01:00
Justin Clark-Casey (justincc)
231a3bf147
Implement optional name and description on http stream handlers so that we can relate a slow request to what the handler actually does and the agent it serves, if applicable.
...
This is most useful for capabilities where the url is not self-describing.
2012-05-03 01:45:49 +01:00
Justin Clark-Casey (justincc)
737e177163
Revert "Log the full exception when errors occur in BaseHttpServer"
...
This reverts commit e31e7c68c8
.
Applied for patch assessment and accidentally committed too early.
2012-04-27 23:46:46 +01:00
Oren Hurvitz
e31e7c68c8
Log the full exception when errors occur in BaseHttpServer
2012-04-27 21:52:04 +01:00
Justin Clark-Casey (justincc)
f3dda2d85d
Add more exception detail to Exception and IOException throws in BaseHttpServer.HandleRequest()
2012-04-20 03:12:25 +01:00
Diva Canto
cdbe34716f
Thank you, BaseHttpServer, for telling me where things go wrong.
2012-04-06 11:21:27 -07:00
Justin Clark-Casey (justincc)
e6272b8d56
Stop also adding an ordinary http handler when we set up a poll http handler.
...
It appears that this is entirely unnecessary since the poll http handlers are dealt with on a separate code path.
2011-12-07 12:28:42 +00:00
Justin Clark-Casey (justincc)
fa63054c4f
On "show caps", stop excluding the seed cap but do exclude it elsewhere
2011-11-29 20:37:03 +00:00
Justin Clark-Casey (justincc)
679a5f6c0b
With "debug http 1", show the path with the query string instead of just the path.
...
Also simplifies debug levels to just 0 and 1
2011-11-29 17:26:45 +00:00
Justin Clark-Casey (justincc)
b6b0bc7b32
Add "debug http" command for currently simple extra debug logging of non-event queue inbound http requests to a simulator
2011-11-29 16:15:52 +00:00
Justin Clark-Casey (justincc)
e14cb45b9b
Drop some unnecessary ContainsKey() checking before Remove() in BaseHttpServer()
...
Remove() presumably does this check anyway since it just returns false if the key is not in the collection.
2011-10-24 23:26:41 +01:00
Justin Clark-Casey (justincc)
9ec672c70b
Fix bugs in EventQueueGetModule.ClientClosed() and BaseHttpServer.RemovePollServerHTTPHandler() that stopped existing code in ClientClosed() from actually tearing down the poll handler
...
Actually doing the tear down appear to have no ill effects with region crossing and teleport.
2011-10-24 23:16:03 +01:00
Justin Clark-Casey (justincc)
e742cffe15
Add Enabled switch in new [Attachments] section in OpenSimDefaults.ini to allow attachments to be temporarily turned off.
...
This is for debugging purposes. Defaults to Attachments Enabled
2011-09-30 01:19:22 +01:00
Justin Clark-Casey (justincc)
d74686fd51
read m_rpcHandlersKeepAlive under appropriate lock
2011-08-22 02:25:58 +01:00
Justin Clark-Casey (justincc)
c587b0a3a3
oops, fix build break from last commit
2011-08-22 02:10:45 +01:00
Justin Clark-Casey (justincc)
9469c62098
improve locking of m_agentHandlers in BaseHttpServer
2011-08-22 02:07:51 +01:00