Commit Graph

33 Commits

Author SHA1 Message Date
Justin Clark-Casey
2208379c90 Introduce Settings.HTTP_MAX_CONNECTIONS to regulate maximum connections to specific endpoints for capability requests.
Previously, CapsBase.SetupRequest() hardcoded this to 32 and DownloadManager.ParallelDownloads was setting this with a default value of 8.
This meant that the ConnectionLimit would oscillate rapidly between these two figures as requests were made.
On Mono 3.2.8 and quite possibly other Mono, this appears to increase the chance that the VM will crash under heavy request load.
This commit makes both SetupRequest() calls use the static Settings.HTTP_MAX_CONNECTIONS - other static settings already exist, and so also makes this configurable.
DownloadManager.ParallelDownloads remains a separate setting since it also governs max parallel downloads through a separate coded mechanism.
2014-08-11 23:57:33 +01:00
Justin Clark-Casey
5f94bda11f Dispose of HttpWebResponse explicitly in CapsBase.GetResponse()
Current code does not but all IDiposable objects should be disposed.
2014-08-04 20:26:10 +01:00
Latif Khalifa
ae112d56fb Update copyright notices 2014-02-25 15:31:10 +01:00
Latif Khalifa
fb61269e42 Potential fix for capabilities fetching under mono by PocketMetaverse 2013-06-15 23:34:01 +02:00
Latif Khalifa
014f5da3f0 Don't reduce number of concurrent downloads set elsewhere.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3495 52acb1d6-8a22-11de-b505-999d5b087335
2011-04-10 14:02:35 +00:00
Latif Khalifa
b277032d03 Turns out Mono's gzip http compression is not very reliable.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3494 52acb1d6-8a22-11de-b505-999d5b087335
2011-04-09 13:00:57 +00:00
Latif Khalifa
95a7303d90 Tell server we support compressed responses if they do.
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3490 52acb1d6-8a22-11de-b505-999d5b087335
2011-03-31 02:51:13 +00:00
Latif Khalifa
549cf94404 LIBOMV-838: Added support for HTTP texture downloads
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3436 52acb1d6-8a22-11de-b505-999d5b087335
2010-08-20 10:45:09 +00:00
Latif Khalifa
0dc8e91fed LIBOMV-840: Add method for downloading arbitrary binary data to CapsBase
* added DownloadDataAsync() that allows you to create your own custom HttpWebRequest

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3355 52acb1d6-8a22-11de-b505-999d5b087335
2010-05-25 19:53:38 +00:00
Latif Khalifa
6871439ea2 LIBOMV-837: Dont't dispose objects we're sending via callback
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3352 52acb1d6-8a22-11de-b505-999d5b087335
2010-05-24 10:55:34 +00:00
John Hurliman
06939fa7ad * Removed OpenMetaverse.Http
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3294 52acb1d6-8a22-11de-b505-999d5b087335
2010-04-01 01:01:01 +00:00
John Hurliman
364c2c26d9 * Moved all capabilities code to the new library, OpenMetaverse.Http
* OpenMetaverse.Http contains a CAPS client + server, event queue client + server, SSL certificate generation (root CA, server certs, client certs), and client certificate authentication
* HttpServer.dll and Mono.Security.dll are new dependencies for OpenMetaverse.Http.dll

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2400 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-29 20:44:28 +00:00
John Hurliman
94ea54bed6 * Changed EventQueueServer to always obey the KeepAlive setting requested by the client
* Added (very slow, O(n)) DoubleDictionary.Remove(TKey1) and DoubleDictionary.Remove(TKey2) functions

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2381 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-15 21:05:50 +00:00
John Hurliman
7f8cffafd2 * Moved BlockingQueue, DoubleDictionary, and ExpiringCache into OpenMetaverseTypes.dll
* First attempt at an EventQueueServer implementation, untested
* Implemented a capabilities server that can route capabilities to local callbacks or remote URIs
* Modified HttpServer.HttpRequestCallback to return a bool: true to close the connection, false to leave it open
* Removed all locks from HttpServer and added try/catch around HttpListenerContext operations
* Added Color4.FromHSV()

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2379 52acb1d6-8a22-11de-b505-999d5b087335
2008-12-15 19:13:24 +00:00
John Hurliman
932306aba9 Added a param to AssetManager.RequestAssetXfer() that specifies if LLPath.Cache (4) or LLPath.Unknown (0) should be used in the request
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2347 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-11 22:20:50 +00:00
John Hurliman
1f527a843b Fixing up Simian's regular expressions to get login working again
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2332 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-07 18:32:45 +00:00
John Hurliman
61c8451fac * Allow HttpServer AddHandler() and RemoveHandler() while the server is running
* Simplified HttpServer calback exception handling
* Fixed a recently introduced typo in LLSD binary serialization
* Allow LLSD binary serialization to work with any Stream instead of only MemoryStream
* Improved Utils.HexStringToBytes(), changed function signature
* Added an efficient Utils.EnumTryParse<T>()

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2323 52acb1d6-8a22-11de-b505-999d5b087335
2008-11-05 01:50:24 +00:00
John Hurliman
f53aee6fa8 Renaming LLSDParser to OSDParser since it will encompass more than just LLSD parsing in the future
git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2322 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-30 16:54:17 +00:00
John Hurliman
bad3108ddf * Renamed LLSD to OSD. The LLSD-specific (de)serialization functions have been renamed to specify they use LLSD. Other serialization formats will be added in the future, along with better native support for vectors and unsigned integers
* Added Utils.SHA1()

git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@2321 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-30 01:50:59 +00:00
John Hurliman
3243e3153d * Added contentType parameter to new HttpListener.AddHandler() overload
* Updated Simian to use the simplified HttpListener.AddHandler() overload

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2317 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-29 20:19:08 +00:00
John Hurliman
dad28f767a * HttpRequestSignature uses regular expressions for the path now
* Added a simplified HttpListener.AddHandler() overload
* Lots of improvements in ExtensionLoader, simplified interface
* Updated Simian to latest ExtensionLoader

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2316 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-29 20:11:28 +00:00
John Hurliman
046a778b09 Applying [LIBOMV-395] from Jeff Ames to comment out dead code and fix lots of compiler warnings
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2284 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-09 16:48:44 +00:00
John Hurliman
0169177c99 * HttpServer fix for when a handler throws an exception but has already closed the response connection
* UUID.TryParse() on a null or empty string will now return false

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2275 52acb1d6-8a22-11de-b505-999d5b087335
2008-10-07 20:07:24 +00:00
John Hurliman
24055f1e79 * Changed HttpRequestCallback to pass the signature of the incoming request
* Added NameValue.NameValuesToString() to serialize NameValue arrays
* Fixed the avatar name tag in Simian, and added a hack to keep the client from trying to download wearables (for now)

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2116 52acb1d6-8a22-11de-b505-999d5b087335
2008-08-19 18:38:29 +00:00
John Hurliman
23a25709a9 * Rolling CAPS implementation back to the synchronous version until we can figure out how to fix the TeleportFinish replay bug in the async
* Removing some debug noise

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2095 52acb1d6-8a22-11de-b505-999d5b087335
2008-08-16 06:30:08 +00:00
John Hurliman
0bd77baba2 * Adding generic HttpServer to OpenMetaverse.Capabilites
* LoginResponseData can now serialize to XmlRpc
* Adding new Simian project, ultra-lightweight simulator for testing and development
* Shuffling OpenMetaverse.Capabilities around a bit in preparation for CAPS server implementation

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2094 52acb1d6-8a22-11de-b505-999d5b087335
2008-08-16 02:04:20 +00:00
John Hurliman
55478386a6 * Fixed NullReferenceExceptions recently introduced into CAPS code [LIBOMV-353]
* Small formatting cleanups in NotationLLSD.cs

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2092 52acb1d6-8a22-11de-b505-999d5b087335
2008-08-15 22:10:54 +00:00
John Hurliman
99239ebcfc * Splits libomv into OpenMetaverseTypes.dll and OpenMetaverse.dll
* All MathUtils and non-SL-specific Helpers functions have been put in OpenMetaverseTypes.dll inside the Utils class. Helpers only contains SL-specific functions now
* LLSD encoding/decoding for custom types has been moved out of the types and implemented as static functions in the LLSD class

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2082 52acb1d6-8a22-11de-b505-999d5b087335
2008-08-12 22:38:02 +00:00
John Hurliman
27294ece8e ThreadPool.RegisterWaitForSingleObject() doesn't appear to be working with an IAsyncResult.AsyncWaitHandle from HttpWebRequest.BeginGetResponse() on Mono 1.9.1. Switching to IAsyncResult.AsyncWaitHandle.WaitOne()
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2023 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-29 23:29:03 +00:00
John Hurliman
71837bfcf6 * Adding Helpers.GetRunningRuntime() to detect Mono vs. .NET runtime
* Cross-platform hack to get CAPS working reasonable on both Mono and Windows

git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2020 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-29 20:05:43 +00:00
John Hurliman
117d4c7f4f Switched CapsBack to use an asynchronous method for fetching the server response, so clients no longer have to wait for event queues to timeout before exiting
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2019 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-29 19:45:36 +00:00
John Hurliman
926e34b627 Adding an overly verbose debug line to look into Content-Length issues with CAPS on Mono
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@2016 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-29 05:17:01 +00:00
John Hurliman
c1f3d6a3c2 Renaming libsecondlife folder to OpenMetaverse. Part of a multi-step process, do not check out this revision!
git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@1957 52acb1d6-8a22-11de-b505-999d5b087335
2008-07-22 22:56:05 +00:00