summaryrefslogtreecommitdiff
path: root/indra/newview/llvvmquery.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-03-12 04:39:41 +0200
committerGitHub <noreply@github.com>2026-03-11 22:39:41 -0400
commitdc1d7552c3dca135fcc6432455c2f011d801752d (patch)
tree3926e3d32449b23c402b0080cec9b034de253c65 /indra/newview/llvvmquery.cpp
parent1c8bb96bb460611aa5d05f5570d627ec5ebcc836 (diff)
Velopack download failure diagnostic (#5520)
* Velopack download failure diagnostic * Fix up velopack downloading updates. Handle updates internally then hand them off to velopack. (#5524) * Update llvelopack.cpp * More velopack changes. Should download updates properly now. * Update llvvmquery.cpp * Don't include NSI files * Restore optional updates, refine viewer restart behavior. (#5527) * Add support for optional updates. * Don't restart the viewer after the update unless it was optional. * Setup UpdaterServiceSetting with velopack properly. * Refine the restart behavior a bit - readd the old "the viewer must update" UX. * If the update is still downloading, close should just reopen the downloading dialog. Also add a login guard - probably unnecessary, but you never know with how creative our residents get. --------- Co-authored-by: Jonathan "Geenz" Goodman <geenz@lindenlab.com>
Diffstat (limited to 'indra/newview/llvvmquery.cpp')
-rw-r--r--indra/newview/llvvmquery.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/indra/newview/llvvmquery.cpp b/indra/newview/llvvmquery.cpp
index b1f964b1e4..2499ab8474 100644
--- a/indra/newview/llvvmquery.cpp
+++ b/indra/newview/llvvmquery.cpp
@@ -75,6 +75,10 @@ namespace
{
// Get base URL from grid manager
std::string base_url = LLGridManager::getInstance()->getUpdateServiceURL();
+
+ // We use this for dev testing when working with VVM and working on the updater. Not advisable to uncomment it.
+ //std::string base_url = "https://update.qa.secondlife.io/update";
+
if (base_url.empty())
{
LL_WARNS("VVM") << "No update service URL configured" << LL_ENDL;
@@ -83,6 +87,10 @@ namespace
// Gather parameters for VVM query
std::string channel = LLVersionInfo::instance().getChannel();
+
+ // We use this for dev testing when working with VVM and working on the updater. Not advisable to uncomment it.
+ // std::string channel = "QA Target for Velopack";
+
std::string version = LLVersionInfo::instance().getVersion();
std::string platform = get_platform_string();
std::string platform_version = get_platform_version();
@@ -123,6 +131,10 @@ namespace
return;
}
+ // Read whether this update is required or optional
+ bool update_required = result["required"].asBoolean();
+ std::string relnotes = result["more_info"].asString();
+
// Extract update URL for current platform
LLSD platforms = result["platforms"];
if (platforms.has(platform))
@@ -132,9 +144,16 @@ namespace
std::string velopack_url = platforms[platform]["velopack_url"].asString();
if (!velopack_url.empty())
{
- LL_INFOS("VVM") << "Velopack update URL: " << velopack_url << LL_ENDL;
+ LL_INFOS("VVM") << "Velopack update URL: " << velopack_url
+ << " required: " << update_required << LL_ENDL;
velopack_set_update_url(velopack_url);
- velopack_check_for_updates();
+
+ std::string update_version = result["version"].asString();
+ LLCoros::instance().launch("VelopackUpdateCheck",
+ [update_required, update_version, relnotes]()
+ {
+ velopack_check_for_updates(update_required, update_version, relnotes);
+ });
}
else
#endif
@@ -149,7 +168,6 @@ namespace
}
// Post release notes URL to the relnotes event pump
- std::string relnotes = result["more_info"].asString();
if (!relnotes.empty())
{
LL_INFOS("VVM") << "Release notes URL: " << relnotes << LL_ENDL;