summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/examples
AgeCommit message (Collapse)Author
2020-03-25DRTVWR-476: pthread_self() also needs CRYPTO_THREADID_set_pointer()Nat Goodspeed
2020-03-25DRTVWR-476: Use OpenSSL API suitable for 64-bit pointers.Nat Goodspeed
In three different places we use the same pattern: an ssl_thread_id_callback() function (a static member of LLCrashLogger, in that case) that used to be passed to CRYPTO_set_id_callback() and therefore returned an unsigned long representing the ID of the current thread. But GetCurrentThread() is a HANDLE, an alias for a pointer, and you can't uniquely cram a 64-bit pointer into an unsigned long. Fortunately OpenSSL has a more modern API for retrieving thread ID. Pass each ssl_thread_id_callback() function to CRYPTO_THREADID_set_callback() instead, converting it to accept CRYPTO_THREADID* and call CRYPTO_THREADID_set_pointer() or CRYPTO_THREADID_set_numeric() as appropriate().
2016-04-04merge with 4.0.3-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-10-15MAINT-5732: Issue in texture_load example and some comments regarding ↵Rider Linden
NoOpDeletor
2015-07-08Fix the sample.Rider Linden
2015-07-08Change HttpOptions::ptr_t to be shared_ptr<> rather than intrusive.Rider Linden
2014-11-14Remove a couple tests for unsigned long < 0.Nat Goodspeed
clang correctly notes that such tests add nothing to the runtime behavior of a program. Unfortunately, clang notes that in the form of a compile error.
2014-09-04Pipelining work. Extend transfer timeout by the pipeline depthMonty Brandenberg
as transfers can appear delayed with deep pipelining and more requests in the pool. Added bad HTTP status error (typically getting a 0 back as HTTP status from libcurl) to the list of retryable errors. There's a response stream problem with libcurl and pipelining that induces this problem. Retrying helps but may not be entirely safe. Watch bug 1420 on the libcurl sourceforge bug tracker. Extend options of test/example program to include un-ranged requests. Document the excessive data transfer induced when ranged requests are disabled. This is an abnormal mode for very rare users so we'll just eat that for now.
2014-07-03Add pipelining and tracing command line options to the test program.Monty Brandenberg
2013-07-12SH-4312 Configuration data between viewer and llcorehttp is clumsy.Monty Brandenberg
Much improved. Unified the global and class options into a single option list. Implemented static and dynamic setting paths as much as possible. Dynamic path does require packet/RPC but otherwise there's near unification. Dynamic modes can't get values back yet due to the response/notifier scheme but this doesn't bother me. Flatten global and class options into simpler struct-like entities. Setter/getter available on these when needed (external APIs) but code can otherwise fiddle directly when it knows what to do. Much duplicated options/state removed from HttpPolicy. Comments cleaned up. Threads better described and consistently mentioned in API docs. Integration test extended for 503 responses with Reply-After headers.
2013-07-08Found the memory corruptor. String trimmer didn't have a validMonty Brandenberg
termination test. Sheesh. Also get some more numbers out of the example/load test program which drives traffic. This should give some useful insights into how the current http throttle works (or doesn't) with varying client demands.
2013-07-03Update the example program so it handles meshes as well. Fix theMonty Brandenberg
request feed logic to use high/low-water level logic as is done in viewer code.
2013-04-15SH-4106 Significantly upgrade the HttpHeaders interface for SSB.Monty Brandenberg
Header container moves from a vector of raw lines to a vector of string pairs representing name/value pairs in headers. For incoming headers, we normalize the name to lowercase and trim it. Values are only left-trimmed. Outgoing headers are left as-is. Simple find() method for the common case, forward and reverse iterators for those few who need to do it themselves. The HTTP status line (e.g. 'HTTP/1.1 200 Ok') is no longer treated as a header to be returned to caller. Unit tests, as usual, were a bear but they absolutely ensured outgoing HTTP header conformance after the change. Grunt work paid off. LLTextureFetch was also given a second options structure for texture fetches. Same as the original but with header return to caller requested. Baked textures should use this, the other 20,000 texture fetch requests should continue to use the original.
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2012-11-27Tweak the example program (used as a performance tester) so that itMonty Brandenberg
will run with higher connection concurrencies. I'm using this to test the listener queue length reporting on apaches and everything is consistent and as expected with this change (stuck at eight before).
2012-07-12SH-3183 Use valgrind on the library.Monty Brandenberg
Using http_texture_load as the test subject, library looks clean. Did some better shutdown in the program itself and it looks better. Libcurl itself is making a lot of noise. Adapted testrunner to run valgrind as well but the memory allocation tester in the tools themselves grossly interferes with Valgrind operations.
2012-07-10SH-3244 Syscall avoidance in HttpRequest::update() methodMonty Brandenberg
Well, achieved that by doing work in bulk when needed. But turned into some additional things. Change timebase from mS to uS as, well, things are headed that way. Implement an HttpReplyQueue::fetchAll method (advertised one, hadn't implemented it).
2012-07-04Example program needs to set Accept: header to talk to Caps router.Monty Brandenberg
2012-06-16Add metrics gathering utils for Mac OS X. All platforms have useful numbers ↵Monty Brandenberg
now.
2012-06-16Implement metrics collection for Linux. Next: Mac OS X.Monty Brandenberg
2012-06-16First round of basic tuning work (shorter sleeps, larger BufferArray blocks).Monty Brandenberg
Beefed up the metrics gathering in http_texture_load to get memory sizes and cpu consumption on windows (still need to implement that on Mac & linux). Ran runs with various idle loops with sleeps from 20 ms down to pure spinning, varied Block allocation size from 1504 to 2^20 bytes. 2ms/2ms/65540 appears to be a good spot under the test conditions (Win7, danu grid, client in Boston).
2012-06-15Fix for linux/mac builds.Monty Brandenberg
2012-06-15Ported example (freestanding) program to drive API & generate performance ↵Monty Brandenberg
numbers. This is a command-line utility to pull content down from a service through the llcorehttp library to produce timings and resource footprints.