SH-4368 Adjust upload timeout parameters for slow networks.

Generally sorted the mesh timeout parameters for maximum
transport time (staying with default 30 for connect).  60S
for normal meshes, 600S for large.  Also documented default
option values in httpoptions.h.  Useful to have these.  In
the future, the timeouts might go into standard llsd options
where they can be tracked a bit more.
master
Monty Brandenberg 2013-07-29 12:42:27 -04:00
parent b7f14a7b39
commit c9e64823c0
2 changed files with 11 additions and 3 deletions

View File

@ -68,36 +68,42 @@ protected:
void operator=(const HttpOptions &); // Not defined
public:
// Default: false
void setWantHeaders(bool wanted);
bool getWantHeaders() const
{
return mWantHeaders;
}
// Default: 0
void setTrace(int long);
int getTrace() const
{
return mTracing;
}
// Default: 30
void setTimeout(unsigned int timeout);
unsigned int getTimeout() const
{
return mTimeout;
}
// Default: 0
void setTransferTimeout(unsigned int timeout);
unsigned int getTransferTimeout() const
{
return mTransferTimeout;
}
// Default: 8
void setRetries(unsigned int retries);
unsigned int getRetries() const
{
return mRetries;
}
// Default: false
void setUseRetryAfter(bool use_retry);
bool getUseRetryAfter() const
{

View File

@ -235,7 +235,8 @@ const S32 REQUEST_HIGH_WATER_MAX = 80;
const S32 REQUEST_LOW_WATER_MIN = 16;
const S32 REQUEST_LOW_WATER_MAX = 40;
const U32 LARGE_MESH_FETCH_THRESHOLD = 1U << 21; // Size at which requests goes to narrow/slow queue
const long LARGE_MESH_XFER_TIMEOUT = 240L; // Seconds to complete xfer
const long SMALL_MESH_XFER_TIMEOUT = 60L; // Seconds to complete xfer, small mesh downloads
const long LARGE_MESH_XFER_TIMEOUT = 600L; // Seconds to complete xfer, large downloads
// Maximum mesh version to support. Three least significant digits are reserved for the minor version,
// with major version changes indicating a format change that is not backwards compatible and should not
@ -629,6 +630,7 @@ LLMeshRepoThread::LLMeshRepoThread()
mSignal = new LLCondition(NULL);
mHttpRequest = new LLCore::HttpRequest;
mHttpOptions = new LLCore::HttpOptions;
mHttpOptions->setTransferTimeout(SMALL_MESH_XFER_TIMEOUT);
mHttpLargeOptions = new LLCore::HttpOptions;
mHttpLargeOptions->setTransferTimeout(LARGE_MESH_XFER_TIMEOUT);
mHttpHeaders = new LLCore::HttpHeaders;