aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers (follow)
Commit message (Collapse)AuthorAgeFilesLines
* - Created a standard function to send XML-RPC requests, which logs them like ↵Oren Hurvitz2014-04-241-1/+1
| | | | | | | we do for other types of HTTP activity. - Changed OpenProfileClient to use the new XML-RPC sending function - Improved logging in WebUtil
* When sending JSON-RPC calls (for UserProfile), use WebUtil instead of ↵Oren Hurvitz2014-04-241-98/+77
| | | | constructing the HTTP requests manually. This allows the calls to be logged when using "debug http all 6".
* String matching in REST handlers: must allow '-' as a separator, because the ↵Oren Hurvitz2014-04-021-1/+1
| | | | "/map" handler uses it
* Better string matching when searching for REST handlers: must match an ↵Oren Hurvitz2014-04-021-3/+8
| | | | | | entire path component (ending with '/' or a similar character). For example, these should match: "/assets" and "/assets/12345", but these shouldn't match: "/assets" and "/assets_exist".
* Fixed last-resort sending of error response (HTTP 500) when an error occurs ↵Oren Hurvitz2014-04-021-4/+4
| | | | | | while handling a request. The previous code didn't actually send the response, so the caller was stuck until the timeout (100 seconds).
* Merge branch 'master' into m_testBlueWall2014-03-272-2/+16
|\
| * Use the "X-Content-Encoding" header to indicate gzipped data, because old ↵Oren Hurvitz2014-03-252-3/+17
| | | | | | | | OpenSims fail if they get an unknown "Content-Encoding"
| * Use the "Content-Encoding" header to indicate gzipped streamsOren Hurvitz2014-03-252-2/+2
| |
* | Sync code that has moved in development branch with changes in masterBlueWall2014-03-251-45/+41
| |
* | Move from UserProfileModule for general availabilityBlueWall2014-03-251-0/+215
|/
* Always throw an exception if MakeRequest (used for HTTP POST) fails. ↵Oren Hurvitz2014-03-251-2/+2
| | | | | | (Previously many exceptions were ignored) Resolves http://opensimulator.org/mantis/view.php?id=6949
* Improved logging of HTTP requestsOren Hurvitz2014-03-251-14/+38
| | | | | | | | | | | - MemoryBuffer isn't seekable, so we can't log it. Log the string instead. - Handle compressed streams - Don't attempt to dump binary data. Either don't log it at all (if we know it's binary), or at least convert non-ASCII characters to ASCII. - Log responses to HTTP requests - Use the same log prefix for all of these log messages ("[LOGHTTP]"), to make them easy to see at a glance - Increased the snippet length to 200 (80 doesn't show enough), and add "..." only if the message was actually truncated Resolves http://opensimulator.org/mantis/view.php?id=6949
* Changed LogThreadPool to have 4 logging levels. Added console command "debug ↵Oren Hurvitz2014-03-251-0/+38
| | | | | | threadpool level" to set the logging level. Resolves http://opensimulator.org/mantis/view.php?id=6945
* Add httpserver.<port>.QueuedPollResponses and ↵Justin Clark-Casey (justincc)2014-03-181-2/+24
| | | | httpserver.<port>.ProcessedPollResponses statistics
* minor: Correction to description of QueuedPollResponses since this covers ↵Justin Clark-Casey (justincc)2014-03-181-1/+1
| | | | long poll and other 'poll' types
* Add httpserver.<port-number>,QueuedPollResponses statJustin Clark-Casey (justincc)2014-03-181-0/+13
| | | | This shows the number pf poll responses queued for processing.
* Add regression test for http inventory fetch.Justin Clark-Casey (justincc)2014-03-173-397/+122
| | | | Involved some restructuring to allow regression tests to dequeue inventory requests and perform poll responses synchronously rather than async
* After previous discussion, put eye-catcher 'SCRIPT READY' messages to ↵Justin Clark-Casey (justincc)2013-12-141-2/+2
| | | | | | | console rather than log as warning The problem with logging at warn is that these aren't actually warnings, and so are false positives to scripts that monitor for problems. Ideally, log4net would have a separate "status" logging level, but currently we will compromise by putting them to console, as they are user-oriented
* refactor: replace verbose checks with String.IsNullOrEmpty where applicable.Justin Clark-Casey (justincc)2013-11-151-1/+1
| | | | Thanks to Kira for this patch from http://opensimulator.org/mantis/view.php?id=6845
* * Add a session concurrency option per key. Allows developer/config to ↵teravus2013-10-093-8/+21
| | | | specify number of concurrent requests on a service.
* * Move the BasicDOSProtector.cs to OpenSim.Framework (all useful classes ↵teravus2013-10-071-181/+0
| | | | | | belong there.....) * Add an IsBlocked(string Key) method so it can be used more generically. (think.. if we want to rate limit login failures, we could have a call in the Login Service to IsBlocked(uuid.ToString()) and ignore the connection if it returns true, if IsBlocked returns false, we could run the login information and if the login fails we could run the Process method to count the login failures.
* * Refactorteravus2013-10-074-410/+213
| | | | * Break out common BasicDOSProtector code into separate class.
* * Added a Basic DOS protection container/base object for the most common ↵teravus2013-10-073-0/+682
| | | | | | | | | HTTP Server handlers. XMLRPC Handler, GenericHttpHandler and <Various>StreamHandler * Applied the XmlRpcBasicDOSProtector.cs to the login service as both an example, and good practice. * Applied the BaseStreamHandlerBasicDOSProtector.cs to the friends service as an example of the DOS Protector on StreamHandlers * Added CircularBuffer, used for CPU and Memory friendly rate monitoring. * DosProtector has 2 states, 1. Just Check for blocked users and check general velocity, 2. Track velocity per user, It only jumps to 2 if it's getting a lot of requests, and state 1 is about as resource friendly as if it wasn't even there.
* * Add an initial complete frame timeout to the WebSocket processor to make ↵teravus2013-10-041-2/+65
| | | | it easier to write WebSocket service code that is resistant to Denial of Service attacks.
* Bump OPenSimulator version and assembly versions up to 0.8.0 DevJustin Clark-Casey (justincc)2013-10-042-2/+2
|
* Don't use 'Indented' formatting for RpcXml responses.Aleric Inglewood2013-09-221-1/+15
| | | | (cherry picked from commit 93abcde69043b175071e0bb752538d9730433f1d)
* remove mono compiler warnings from PollServiceRequestManagerJustin Clark-Casey (justincc)2013-08-171-4/+2
|
* Add "debug threadpool status" console command to show min/max/current ↵Justin Clark-Casey (justincc)2013-08-061-0/+23
| | | | worker/iocp threadpool numbers
* Add "debug comms status" command to show current debug comms settingsJustin Clark-Casey (justincc)2013-08-051-0/+11
|
* Make it possible to switch whether we serialize osd requests per endpoint or ↵Justin Clark-Casey (justincc)2013-08-051-0/+37
| | | | | | not, either via config (SerializeOSDRequests in [Network]) or via the "debug comms set" console command. For debug purposes to assess what impact this has on network response in a heavy test environment.
* minor: move "threads abort" and "force gc" console commands into debug ↵Justin Clark-Casey (justincc)2013-08-051-2/+2
| | | | category - these are not things one needs to do in normal operation
* Make it possible to set worker/iocp min/max threadpool limits on the fly ↵Justin Clark-Casey (justincc)2013-08-051-0/+78
| | | | with the console command "debug threadpool set"
* Add checks monitoring framework to provide alerts if certain conditions do ↵Justin Clark-Casey (justincc)2013-08-051-0/+1
| | | | | | not hold. Not yet in use.
* Increased the rate of the PollServiceRequestManager to 0.5 secs (it was ↵Diva Canto2013-07-261-1/+1
| | | | 1sec). Group chat is going over the EQ... Hopefully this won't increase CPU when there's nothing going on, but we need to watch for that.
* Fix regression tests relating to agent transfer by making simulator use last ↵Justin Clark-Casey (justincc)2013-07-261-0/+5
| | | | week's SIMULATOR/0.1 protocol for now.
* Removed verbose debug from previous commitDiva Canto2013-07-211-1/+0
|
* PollServiceRequestManager: changed the long poll from a Queue to a List. No ↵Diva Canto2013-07-211-13/+17
| | | | need to dequeue and enqueue items every 1sec.
* Delay the enqueueing of non-longpoll requests for 100ms. No need to have ↵Diva Canto2013-07-211-1/+11
| | | | these requests actively on the processing queue if it seems they're not ready.
* Changed the timoeut of EQ 502s (no events) to 50 secs. The viewer post ↵Diva Canto2013-07-181-1/+1
| | | | | | requests timeout in 60 secs. There's plenty of room for improvement in handling the EQs. Some other time...
* Revert "Revert "Putting the requests back in the queue while testing for ↵Diva Canto2013-07-181-3/+7
| | | | | | count >0 is not the smartest move..."" This reverts commit 71278919575b0e0222cdbe3c0cefa5919f9a75bc.
* Reverting the reverts I did yesterday. cpu-branch has now beenDiva Canto2013-07-182-48/+35
| | | | | | | | successfully tested, and I'm merging back those changes, which proved to be good. Revert "Revert "Cleared up much confusion in PollServiceRequestManager. Here's the history:"" This reverts commit fa2370b32ee57a07f27501152c3c705a883b13d8.
* Revert "Cleared up much confusion in PollServiceRequestManager. Here's the ↵Diva Canto2013-07-172-35/+48
| | | | | | history:" This reverts commit e46459ef21e1ee5ceaeca70365a7c881d33b09ce.
* Revert "Putting the requests back in the queue while testing for count >0 is ↵Diva Canto2013-07-171-7/+3
| | | | | | not the smartest move..." This reverts commit f4317dc26d670c853d0ea64b401b00f718f09474.
* 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.