summaryrefslogtreecommitdiff
path: root/indra/viewer_components/updater
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2013-05-13 16:28:50 -0400
committerOz Linden <oz@lindenlab.com>2013-05-13 16:28:50 -0400
commitfc4a6431c958db2d64e096068f4fd2395a53aa54 (patch)
tree800cd5c30db2cd18d3a07bf36d43f5c77a31c894 /indra/viewer_components/updater
parent4dd245055f3417d8f8fb611a198ed5671dbce292 (diff)
CHOP-942: fix crash if update check times out
Diffstat (limited to 'indra/viewer_components/updater')
-rwxr-xr-xindra/viewer_components/updater/llupdatechecker.cpp37
1 files changed, 21 insertions, 16 deletions
diff --git a/indra/viewer_components/updater/llupdatechecker.cpp b/indra/viewer_components/updater/llupdatechecker.cpp
index 39f68ac0f5..1e768f52d9 100755
--- a/indra/viewer_components/updater/llupdatechecker.cpp
+++ b/indra/viewer_components/updater/llupdatechecker.cpp
@@ -108,25 +108,30 @@ void LLUpdateChecker::Implementation::checkVersion(std::string const & hostUrl,
unsigned char uniqueid[MD5HEX_STR_SIZE],
bool willing_to_test)
{
- llassert(!mInProgress);
-
- mInProgress = true;
-
- mHostUrl = hostUrl;
- mServicePath = servicePath;
- mChannel = channel;
- mVersion = version;
- mPlatform = platform;
- mPlatformVersion = platform_version;
- memcpy(mUniqueId, uniqueid, MD5HEX_STR_SIZE);
- mWillingToTest = willing_to_test;
+ if (!mInProgress)
+ {
+ mInProgress = true;
+
+ mHostUrl = hostUrl;
+ mServicePath = servicePath;
+ mChannel = channel;
+ mVersion = version;
+ mPlatform = platform;
+ mPlatformVersion = platform_version;
+ memcpy(mUniqueId, uniqueid, MD5HEX_STR_SIZE);
+ mWillingToTest = willing_to_test;
- mProtocol = sProtocolVersion;
+ mProtocol = sProtocolVersion;
- std::string checkUrl = buildUrl(hostUrl, servicePath, channel, version, platform, platform_version, uniqueid, willing_to_test);
- LL_INFOS("UpdaterService") << "checking for updates at " << checkUrl << LL_ENDL;
+ std::string checkUrl = buildUrl(hostUrl, servicePath, channel, version, platform, platform_version, uniqueid, willing_to_test);
+ LL_INFOS("UpdaterService") << "checking for updates at " << checkUrl << LL_ENDL;
- mHttpClient.get(checkUrl, this);
+ mHttpClient.get(checkUrl, this);
+ }
+ else
+ {
+ LL_WARNS("UpdaterService") << "attempting to restart a check when one is in progress; ignored" << LL_ENDL;
+ }
}
void LLUpdateChecker::Implementation::completed(U32 status,