aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers/HttpServer (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "Now trying DoubleQueue instead of BlockingQueue for the ↵Diva Canto2013-07-171-2/+2
| | | | | | PollServiceRequestManager." This reverts commit 5f95f4d78e8c7d17b8ba866907156fe6d4444c04.
* Revert "This is a completely unreasonable thing to do, effectively defying ↵Diva Canto2013-07-171-52/+40
| | | | | | the purpose of BlockingQueues. Trying this, to see the effect on CPU." This reverts commit 5232ab0496eb4fe6903a0fd328974ac69df29ad8.
* This is a completely unreasonable thing to do, effectively defying the ↵Diva Canto2013-07-171-40/+52
| | | | purpose of BlockingQueues. Trying this, to see the effect on CPU.
* Now trying DoubleQueue instead of BlockingQueue for the ↵Diva Canto2013-07-171-2/+2
| | | | PollServiceRequestManager.
* Putting the requests back in the queue while testing for count >0 is not the ↵Diva Canto2013-07-171-3/+7
| | | | smartest move...
* Cleared up much confusion in PollServiceRequestManager. Here's the history:Diva Canto2013-07-172-48/+35
| | | | | | When Melanie added the web fetch inventory throttle to core, she made the long poll requests (EQs) effectively be handled on an active loop. All those requests, if they existed, were being constantly dequeued, checked for events (which most often they didn't have), and requeued again. This was an active loop thread on a 100ms cycle! This fixes the issue. Now the inventory requests, if they aren't ready to be served, are placed directly back in the queue, but the long poll requests aren't placed there until there are events ready to be sent or timeout has been reached. This puts the LongPollServiceWatcherThread back to 1sec cycle, as it was before.
* Add request received/handling stats for caps which are served by http poll ↵Justin Clark-Casey (justincc)2013-07-154-50/+69
| | | | | | | handlers. This adds explicit cap poll handler supporting to the Caps classes rather than relying on callers to do the complicated coding. Other refactoring was required to get logic into the right places to support this.
* Add missing file BaseOutputStreamHandler.cs from recent commit e19defdJustin Clark-Casey (justincc)2013-07-081-0/+60
|
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimJustin Clark-Casey (justincc)2013-07-081-1/+1
|\
| * BaseHttpServer: if the handler sets the content length, don't override it. ↵Diva Canto2013-07-081-1/+1
| | | | | | | | This happens in HEAD handlers.
* | Add "show caps stats by user" and "show caps stats by cap" console commands ↵Justin Clark-Casey (justincc)2013-07-087-16/+51
|/ | | | | | | | | to print various counts of capability invocation by user and by cap This currently prints caps requests received and handled, so that overload of received compared to handled or deadlock can be detected. This involves making BaseStreamHandler and BaseOutputStream record the ints, which means inheritors should subclass ProcessRequest() instead of Handle() However, existing inheriting classes overriding Handle() will still work, albeit without stats recording. "show caps" becomes "show caps list" to disambiguate between show caps commands
* minor: remove mono compiler warnings in WebsocketServerHandler.csJustin Clark-Casey (justincc)2013-06-201-13/+7
|
* Display existing statistic of how many http requests a server is making as ↵Justin Clark-Casey (justincc)2013-06-191-1/+1
| | | | server.network.HTTPRequestsMade in "show stats all"
* Make number of inbound http requests handled available as a ↵Justin Clark-Casey (justincc)2013-06-181-5/+25
| | | | httpserver.<port>.IncomingHTTPRequestsProcessed stat
* Add port numbers to poll service thread names so that we can tell which ↵Justin Clark-Casey (justincc)2013-06-101-2/+2
| | | | belong to which HttpServer
* Reinstate explicit starting and stopping of PollServiceRequestManager added ↵Justin Clark-Casey (justincc)2013-06-102-4/+7
| | | | | | | | in 3eee991 but removed in 7c0bfca Do not rely on destructors to stop things. These fire at unpredictable times and cause problems such as http://opensimulator.org/mantis/view.php?id=6503 and most probably http://opensimulator.org/mantis/view.php?id=6668
* Supply proper type information for the various types of requestsMelanie2013-06-071-3/+1
|
* Adding Avination's PollService to round out the HTTP inventory changesMelanie2013-06-074-226/+209
|
* * In between the fog, a moment of clarity. This fixes mantis 6570teravus2013-04-041-1/+1
|
* *Yet another HTTPServer update code changes in OpenSim Libs. * This fixes a ↵teravus2013-03-161-3/+14
| | | | 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.
* Merge branch 'master' of ssh://opensimulator.org/var/git/opensimBlueWall2013-03-051-1/+16
|\
| * * Add a Max Payload size property to the Websocket Server Handler. If you ↵teravus2013-03-051-1/+16
| | | | | | | | would like to restrict the maximum packet size, (and therefore protect against Memory DOSing) then you should set this. I defaulted it to 40MB. This means that in theory, a malicious user could connect and send a packet that claims that the payload is up to 40 mb (even if it doesn't actually turn out to be 40mb. More testing needs to be done on it where the packets are maliciously malformed.
* | Add method to remove JsonRpc Handlers from the serverBlueWall2013-03-032-0/+8
|/
* Make sure we dispose of WebResponse, StreamReader and Stream in various ↵Justin Clark-Casey (justincc)2013-02-271-12/+3
| | | | places where we were not already.
* Deleted all AssemblyFileVersion directivesDiva Canto2013-02-191-1/+1
|
* * gracefully handle a Situation where a double close is called on the ↵teravus2013-02-141-0/+2
| | | | WebSocket handler
* * Adds Websocket support to baseHttpServer and IHttpServer.cs . This ↵teravus2013-02-072-1/+11
|\ | | | | | | allows modules to set up a websocket server that websocket clients can connect to. An example module is in OptionalModules/Example/WebSocketEchoTest/WebSocketEchoModule.cs
| * Bump version and assembly version numbers from 0.7.5 to 0.7.6Justin Clark-Casey (justincc)2013-02-051-1/+1
| | | | | | | | | | | | | | | | This is mostly Bluewall's work but I am also bumping the general version number OpenSimulator 0.7.5 remains in the release candidate stage. I'm doing this because master is significantly adding things that will not be in 0.7.5 This update should not cause issues with existing external binary DLLs because our DLLs do not have strong names and so the exact version match requirement is not in force.
* | This is the final commit that enables the Websocket handlerteravus2013-02-072-2/+1095
| |
* | We're not really done here.. but we're getting there. Socket Read is ↵teravus2013-02-051-1/+37
|/ | | | working.. Still have to do Header.ToBytes and compose a websocket frame with a payload.
* Merge branch 'master' of /home/opensim/var/repo/opensimBlueWall2013-01-232-5/+15
|\
| * Explicitly stop PollServiceRequestManager() rather than relying on its ↵Justin Clark-Casey (justincc)2013-01-192-5/+15
| | | | | | | | | | | | destructor. Hopes to address occasional shutdown failures from http://opensimulator.org/mantis/view.php?id=6503
* | Add additional return statusBlueWall2013-01-232-4/+23
|/ | | | Adding additional return status for JsonRpcMethod. Now returns true/false
* Add Json-Rpc 2.0 To Registered HandlersBlueWall2013-01-154-0/+294
| | | | | Added registration json-rpc handlers in the http server. Covers version 2.0 See: http://www.jsonrpc.org/specification
* In BaseHttpServer.HandleRequest(), use Culture.SetCurrentCulture() rather ↵Justin Clark-Casey (justincc)2012-12-051-1/+1
| | | | than creating a new CultureInfo separately
* Delete unused BaseHttpServer.HandleAgentRequest()Justin Clark-Casey (justincc)2012-11-231-53/+0
|
* minor: If logging full incoming HTTP data, don't deceptively print ... at ↵Justin Clark-Casey (justincc)2012-11-201-2/+5
| | | | the end of the body.
* A few more AssemblyInfos in a few more dlls.Diva Canto2012-11-141-0/+33
|
* minor: Get content type handler logger to log "unset" for the content type ↵Justin Clark-Casey (justincc)2012-10-231-1/+1
| | | | instead of blank if no content type was set.
* minor: Use LogIncomingToContentTypeHandler() method for incoming HTTP data ↵Justin Clark-Casey (justincc)2012-10-231-8/+2
| | | | | | 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.
* If we're avoiding printing a long request warning for a GetTexture CAP call, ↵Justin Clark-Casey (justincc)2012-10-181-1/+1
| | | | | | 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.
* Allow setting max connections for an endpointMelanie2012-09-301-1/+1
|
* Revert "Added request.Proxy=null everywhere, as discussed in ↵Diva Canto2012-09-303-4/+0
| | | | | | | | http://stackoverflow.com/questions/2519655/httpwebrequest-is-extremely-slow." But the patch is here, in case anyone wants to try it. This reverts commit 531edd51d82ecd6a842a2611c99e9919634491ef.
* Added request.Proxy=null everywhere, as discussed in ↵Diva Canto2012-09-303-0/+4
| | | | | | http://stackoverflow.com/questions/2519655/httpwebrequest-is-extremely-slow. Thanks R.Gunther (rigun@rigutech.nl) https://lists.berlios.de/pipermail/opensim-users/2012-September/010986.html
* Fix bug where debug http level 6 could not be specified. Also converts ↵Justin Clark-Casey (justincc)2012-09-291-3/+3
| | | | newlines at this level to '\n' to enable them to be logged.
* Make BaseHttpServer throws say something useful.Diva Canto2012-09-221-2/+2
|
* Comment out the long unused afaik HTTP agent handlers.Justin Clark-Casey (justincc)2012-09-212-84/+84
| | | | | | 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.
* Add request number counting to incoming HTTP requests in the same way that ↵Justin Clark-Casey (justincc)2012-09-211-18/+41
| | | | | | | | | 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.
* Insert a new log level 4 for HTTP IN and HTTP OUT that will log how long the ↵Justin Clark-Casey (justincc)2012-09-201-15/+32
| | | | | | | 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.
* Add ability to turn on/off logging of outgoing HTTP requests flowing through ↵Justin Clark-Casey (justincc)2012-09-201-5/+5
| | | | | | | | | 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.