summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/_httpoprequest.cpp
AgeCommit message (Collapse)Author
2023-07-29Fix newer libcurl from not being able to downloadErik Kundiman
System libcurl, which is typically newer, doesn't accept when SL server responses with an invalid Content-Encoding value (usually some value that's probably meant to be put as the Content-Type value), that we'd get "unrecognized or bad HTTP Content or Transfer-Encoding" https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Encoding A way to fix this would be to just not expect decompressed contents, by letting libcurl have the default value for CURLOPT_ACCEPT_ENCODING, which is NULL.
2020-11-11Merge branch 'master' into DRTVWR-513-maintAndrey Lihatskiy
# Conflicts: # autobuild.xml # indra/llui/llfolderviewmodel.h # indra/newview/lltexturecache.cpp # indra/newview/llviewermenu.h # indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
2020-09-28Merge branch 'master' into DRTVWR-513-maintAndrey Lihatskiy
# Conflicts: # indra/newview/llgroupmgr.cpp
2020-09-23Fix line endingsAndrey Kleshchev
2020-09-09SL-13919 SSL verification should take mVerifyPeer flag into accountAndrey Kleshchev
2020-05-29SL-13348 Thread crashing singleton #1Andrey Kleshchev
2020-03-04SL-12421 Viewer's certificate validation does not reject connectionsAndrey Kleshchev
2019-01-29SL-2364 Fixed Viewer Caches Login Host DNS Entries Indefinetelyandreykproductengine
2017-10-24MAINT-7081: Only request HTTP2 with $VIEWERASSET override (testing)Nat Goodspeed
2017-10-24MAINT-7081: Merge from lindenlab/viewer64.Nat Goodspeed
2017-10-11Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-09-30MAINT-7081: Eliminate unused variable errors after new refactoring.Nat Goodspeed
The new helper functions check_curl_easy_setopt() and check_curl_multi_setopt() encapsulate the pervasive idiom: code = curl_{easy,multi}_setopt(handle, option, arg); check_curl_{easy,multi}_code(code, option); But since each of these helper functions contains its own local CURL{,M}code variable 'code', having a caller-scope variable reused for every such call is no longer necessary -- in fact is no longer used at all. That produces a fatal warning with MSVC. Get rid of those now-unused variables.
2017-09-29MAINT-7081: Try requesting HTTP/2 when a request wants pipelining.Nat Goodspeed
2017-08-14MAINT-7634: Feedback from code review, move enum to string converter to own ↵Rider Linden
function.
2017-08-08MAINT-7634: Logging and instrumentation canges to narrow down viewer crashes.Rider Linden
2017-07-28MAINT-7634: Move StatsAccumulator into llcommon, collect data sent and error ↵Rider Linden
codes from core.
2017-07-24MAINT-7495 Viewer retries too many time apon 504 from login.cgiandreykproductengine
2016-12-13MAINT-6978 Proxy should not be initialized outside of startLLProxy()andreykproductengine
2016-04-04merge with 4.0.3-releaseOz Linden
2016-02-19MAINT-6137: Re enable pipelining by default, use new version of CURL (7.47) ↵Rider Linden
with corrections for timed out connections in pipelining. Minor fix for safer op retrieval.
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-10-16MAINT-5271: Converted internal pointers to internal operation to managed ↵Rider Linden
shared pointers. Removed direct cast and dereference of handles.
2015-08-12MAINT-5500: Finish converting the AIS responders to the new coroutine model, ↵Rider Linden
Cleaned up dead an unused code. MAINT-4952: Added COPY and MOVE methods to Core:Http adapter
2015-07-08Enforcing constness of refsRider Linden
2015-07-08Change HttpOptions::ptr_t to be shared_ptr<> rather than intrusive.Rider Linden
2015-07-08Convert LLCore::HttpHeaders to use shared_ptr<> rather than an ↵Rider Linden
intrusive_ptr<> for refrence counting.
2015-06-24MAINT-5295 Remove POSTFIELDS from PUT operation.Rider Linden
2015-06-05Mac builds are very picking about testing an unsigned for < 0Rider Linden
2015-06-05Added a seek method to LLCore::Http for data rewind.Rider Linden
A couple of minor changes to merchant out box in hopes that the would fix the issues.
2015-05-27Memory leak (extra ref) in webprofileRider Linden
Viewer media routines to coroutine. Post with raw respons in llcorehttputil LLCore::Http added headers only option (applies only on get)
2015-04-10Adding support for DELETE, PATCH and COPYRider Linden
2015-04-01Added AvatarNameCache as coroutine, with LLCore::HttpHandler to respond ↵Rider Linden
correctly to Event Pumps. Added get/setRequestURL() to LLCore::HttpResponse Removed URI from the HttpSDHandler.
2015-03-27first set of chnages from code review from NatRider Linden
2015-03-16Removal of RPCXML dep on LLCurl switching to LLCore::HtmlRider Linden
2015-01-13merge changes for 3.7.24-releaseOz Linden
2014-11-14Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2014-11-06BUG-7698, BUG-7688, BUG-7694 (others) CDN connection issues.Monty Brandenberg
Under pipelining, requests were given a 5x timeout factor due to the way that the timeout clock works in libcurl. Under CDN load, connections were not being torn down quickly and it was only this timer that led to disconnect and retry. So, we want to break a connection that isn't making progress but that isn't immediately possible. We'll compromise with a 60S timeout that (we hope) will be neither too long for stalled connections nor too short for large asset transfer requests.
2014-10-17Update to build on Xcode 6.0: remove unused codecallum_linden
2014-10-17Update to build on Xcode 6.0: interesting - clang doesn't like it if you ↵callum_linden
specify extra components of a format string that aren't populated in snprintf
2014-10-10MAINT-4564 HTTP Pipelining is not happening in Drano HTTP Phase 4Monty Brandenberg
Incorporate the new libcurl 7.38.0 build with curl bug 1420 workaround. Add developer-centric testing code to evaluate the workaround or a future fix for 1420.
2014-09-19Introduce libcurl handle cache. Create a private cacheMonty Brandenberg
of used handles and a fast handle factory that's thread- correct.
2014-09-18Documentation. Describe curl bug 1420 testing and how toMonty Brandenberg
reproduce data corruption via timeouts.
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-08-12Better support for dynamic option changes in llcorehttp. Libcurl hasMonty Brandenberg
some problems disabling pipelining on a multi handle with outstanding requests so build a more conservative system that allows requests to drain before setting curl multi options. Would rather not have this but it is significantly safer. "HttpPipelining" debug setting is now fully dynamic. Connection limits can also be made dynamic in the near future. Upped the default connection count back to 8 for now but will revisit this in the tuning phase. It might be time to combine mesh and textures into a single asset class. For normal server operations that would be a clear path, but for server under load, the current scheme may be better. Minor cleanup in logging to elminate some redundant strings. Might add some more tracing to the stall logic 'just in case'.
2014-02-25merge viewer-release to sunshine-externalBrad Payne (Vir Linden)
2013-10-16mergeBrad Payne (Vir Linden)
2013-10-04Merge. Pull in viewer-release after 3.6.7 release.Monty Brandenberg
2013-09-24SH-3690 SH-4505 Cleanup pass through code.Monty Brandenberg
Start using DNS cache in legacy LLCurl code. Go to 15 seconds particularly as we're using threaded resolver at this point. Documentation cleanup. Add libcurl status checking and logging for curl_easy_setopt() operations that fail. Shouldn't happen and we'll just continue anyway but there's info in the logs to track these down now. Cleaned up logic around FASTTIMER enable defines used to evaluate pipeline stalls in main thread. Removed long-standing thread race around caps strings and URL construction. Not a significant risk but refactoring the code to get rid of them removed one huge eyesore. It can be made even slicker if desired (see notes).
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.