From 122e2676ed5c1a79e683421d4012ac9e8da3df4b Mon Sep 17 00:00:00 2001
From: Rider Linden <rider@lindenlab.com>
Date: Fri, 1 Mar 2019 16:12:10 -0800
Subject: Add a command line flag to prevent the viewer from launching the
 update checker.  To use from debugger
 secondlife-bin->properties->Debugging->Command Arguments add
 "--skipupdatecheck"

---
 indra/newview/app_settings/cmd_line.xml |  9 ++++++
 indra/newview/app_settings/settings.xml | 13 +++++++-
 indra/newview/llappviewer.cpp           | 53 +++++++++++++++++++--------------
 3 files changed, 51 insertions(+), 24 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml
index e4e1cdcf44..4e186292f7 100644
--- a/indra/newview/app_settings/cmd_line.xml
+++ b/indra/newview/app_settings/cmd_line.xml
@@ -407,5 +407,14 @@
       <integer>1</integer>
       <!-- Special case. Mapped to settings procedurally. -->
     </map>
+
+    <key>skipupdatecheck</key>
+    <map>
+      <key>desc</key>
+      <string>Skips update check at startup.</string>
+      <key>map-to</key>
+      <string>CmdLineSkipUpdater</string>
+    </map>
+
   </map>
 </llsd>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 3e8a854df3..088bc3dfac 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -1940,7 +1940,18 @@
       <key>Value</key>
       <string/>
     </map>
-    <key>ConnectAsGod</key>
+    <key>CmdLineSkipUpdater</key>
+    <map>
+      <key>Comment</key>
+      <string>Command line skip updater check.</string>
+      <key>Persist</key>
+      <integer>0</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
+  <key>ConnectAsGod</key>
     <map>
       <key>Comment</key>
       <string>Log in a god if you have god access.</string>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 07f85a2dd5..e51ca38b18 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1135,33 +1135,40 @@ bool LLAppViewer::init()
 
 	gGLActive = FALSE;
 
-	LLProcess::Params updater;
-	updater.desc = "updater process";
-	// Because it's the updater, it MUST persist beyond the lifespan of the
-	// viewer itself.
-	updater.autokill = false;
+    if (!gSavedSettings.getBOOL("CmdLineSkipUpdater"))
+    {
+        LLProcess::Params updater;
+        updater.desc = "updater process";
+        // Because it's the updater, it MUST persist beyond the lifespan of the
+        // viewer itself.
+        updater.autokill = false;
 #if LL_WINDOWS
-	updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "SLVersionChecker.exe");
+        updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "SLVersionChecker.exe");
 #elif LL_DARWIN
-	// explicitly run the system Python interpreter on SLVersionChecker.py
-	updater.executable = "python";
-	updater.args.add(gDirUtilp->add(gDirUtilp->getAppRODataDir(), "updater", "SLVersionChecker.py"));
+        // explicitly run the system Python interpreter on SLVersionChecker.py
+        updater.executable = "python";
+        updater.args.add(gDirUtilp->add(gDirUtilp->getAppRODataDir(), "updater", "SLVersionChecker.py"));
 #else
-	updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "SLVersionChecker");
+        updater.executable = gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "SLVersionChecker");
 #endif
-	// add LEAP mode command-line argument to whichever of these we selected
-	updater.args.add("leap");
-	// UpdaterServiceSettings
-	updater.args.add(stringize(gSavedSettings.getU32("UpdaterServiceSetting")));
-	// channel
-	updater.args.add(LLVersionInfo::getChannel());
-	// testok
-	updater.args.add(stringize(gSavedSettings.getBOOL("UpdaterWillingToTest")));
-	// ForceAddressSize
-	updater.args.add(stringize(gSavedSettings.getU32("ForceAddressSize")));
-
-	// Run the updater. An exception from launching the updater should bother us.
-	LLLeap::create(updater, true);
+        // add LEAP mode command-line argument to whichever of these we selected
+        updater.args.add("leap");
+        // UpdaterServiceSettings
+        updater.args.add(stringize(gSavedSettings.getU32("UpdaterServiceSetting")));
+        // channel
+        updater.args.add(LLVersionInfo::getChannel());
+        // testok
+        updater.args.add(stringize(gSavedSettings.getBOOL("UpdaterWillingToTest")));
+        // ForceAddressSize
+        updater.args.add(stringize(gSavedSettings.getU32("ForceAddressSize")));
+
+        // Run the updater. An exception from launching the updater should bother us.
+        LLLeap::create(updater, true);
+    }
+    else
+    {
+        LL_WARNS("InitInfo") << "Skipping updater check." << LL_ENDL;
+    }
 
 	// Iterate over --leap command-line options. But this is a bit tricky: if
 	// there's only one, it won't be an array at all.
-- 
cgit v1.2.3