SH-3222 Slow loading textures on Lag Me 1
Think I have found the major factor that causes the Linksys WRT54G V5 to fall over in testing scenarios: DNS. For some historical reason, we're trying to use libcurl without any DNS caching. My implementation echoed that and implemented it correctly and I was seeing a DNS request per request on the wire. The existing implementation tries to do that and has bugs because it is clearing caching DNS data querying only once every few seconds. Once I started emulating the bug, comms through the WRT became much, much more reliable.master
parent
adce38800a
commit
f37b90df50
|
|
@ -77,6 +77,9 @@ const int LOOP_SLEEP_NORMAL_MS = 2;
|
|||
// Block allocation size (a tuning parameter) is found
|
||||
// in bufferarray.h.
|
||||
|
||||
// Compatibility controls
|
||||
const bool ENABLE_LINKSYS_WRT54G_V5_DNS_FIX = true;
|
||||
|
||||
} // end namespace LLCore
|
||||
|
||||
#endif // _LLCORE_HTTP_INTERNAL_H_
|
||||
|
|
|
|||
|
|
@ -385,8 +385,15 @@ HttpStatus HttpOpRequest::prepareRequest(HttpService * service)
|
|||
curl_easy_setopt(mCurlHandle, CURLOPT_PRIVATE, this);
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_ENCODING, "");
|
||||
|
||||
// *FIXME: Revisit this old DNS timeout setting - may no longer be valid
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_DNS_CACHE_TIMEOUT, 0);
|
||||
if (ENABLE_LINKSYS_WRT54G_V5_DNS_FIX)
|
||||
{
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_DNS_CACHE_TIMEOUT, 10);
|
||||
}
|
||||
else
|
||||
{
|
||||
// *FIXME: Revisit this old DNS timeout setting - may no longer be valid
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_DNS_CACHE_TIMEOUT, 0);
|
||||
}
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_AUTOREFERER, 1);
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_FOLLOWLOCATION, 1);
|
||||
curl_easy_setopt(mCurlHandle, CURLOPT_MAXREDIRS, DEFAULT_HTTP_REDIRECTS); // *FIXME: parameterize this later
|
||||
|
|
|
|||
Loading…
Reference in New Issue