From b2f61c0e0b27b9c1dae33a85bfc4db6b3ce95dc0 Mon Sep 17 00:00:00 2001
From: andreykproductengine <andreykproductengine@lindenlab.com>
Date: Thu, 15 Feb 2018 21:48:18 +0200
Subject: [PATCH] MAINT-8297 Fixed "Missing CA File" message when running under
 debugger on windows

---
 indra/llvfs/lldir_win32.cpp          | 2 +-
 indra/newview/llsechandler_basic.cpp | 2 +-
 indra/newview/llviewermedia.cpp      | 2 +-
 indra/newview/viewer_manifest.py     | 9 +++++++++
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/indra/llvfs/lldir_win32.cpp b/indra/llvfs/lldir_win32.cpp
index c4a4c74d1ee..cfbc5803c77 100644
--- a/indra/llvfs/lldir_win32.cpp
+++ b/indra/llvfs/lldir_win32.cpp
@@ -233,7 +233,7 @@ void LLDir_Win32::initAppDirs(const std::string &app_name,
 		LL_WARNS() << "Couldn't create LL_PATH_CACHE dir " << getExpandedFilename(LL_PATH_CACHE,"") << LL_ENDL;
 	}
 
-	mCAFile = getExpandedFilename(LL_PATH_APP_SETTINGS, "ca-bundle.crt");
+	mCAFile = gDirUtilp->getExpandedFilename( LL_PATH_EXECUTABLE, "app_settings", "ca-bundle.crt" );
 }
 
 U32 LLDir_Win32::countFilesInDir(const std::string &dirname, const std::string &mask)
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index 814cfde75da..a1dbbb307b4 100644
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -1275,7 +1275,7 @@ void LLSecAPIBasicHandler::init()
 		
 		// grab the application ca-bundle.crt file that contains the well-known certs shipped
 		// with the product
-		std::string ca_file_path = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "ca-bundle.crt");
+		std::string ca_file_path = gDirUtilp->getExpandedFilename( LL_PATH_EXECUTABLE, "app_settings", "ca-bundle.crt" );
 		LL_INFOS("SECAPI") << "Loading application certificate store from " << ca_file_path << LL_ENDL;
 		LLPointer<LLBasicCertificateStore> app_ca_store = new LLBasicCertificateStore(ca_file_path);
 		
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 474f3de6646..87ee2f4921c 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -2029,7 +2029,7 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)
 
 		// the correct way to deal with certs it to load ours from ca-bundle.crt and append them to the ones
 		// Qt/WebKit loads from your system location.
-		std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_APP_SETTINGS, "ca-bundle.crt" );
+		std::string ca_path = gDirUtilp->getExpandedFilename( LL_PATH_EXECUTABLE, "app_settings", "ca-bundle.crt" );
 		media_source->addCertificateFilePath( ca_path );
 
 		media_source->proxy_setup(gSavedSettings.getBOOL("BrowserProxyEnabled"), gSavedSettings.getString("BrowserProxyAddress"), gSavedSettings.getS32("BrowserProxyPort"));
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index e823228681f..493bfac632a 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -595,6 +595,9 @@ def construct(self):
         self.path("featuretable.txt")
         self.path("ca-bundle.crt")
 
+        with self.prefix(src=pkgdir,dst="app_settings"):
+            self.path("ca-bundle.crt")
+
         # Media plugins - CEF
         with self.prefix(src='../media_plugins/cef/%s' % self.args['configuration'], dst="llplugin"):
             self.path("media_plugin_cef.dll")
@@ -1052,6 +1055,9 @@ def construct(self):
                         self.path("SecondLife.nib")
                         self.path("ca-bundle.crt")
 
+                        with self.prefix(src=pkgdir,dst="app_settings"):
+                            self.path("ca-bundle.crt")
+
                         self.path("SecondLife.nib")
 
                         # Translations
@@ -1510,6 +1516,9 @@ def construct(self):
         self.path("featuretable_linux.txt")
         self.path("ca-bundle.crt")
 
+        with self.prefix(src=pkgdir,dst="app_settings"):
+            self.path("ca-bundle.crt")
+
     def package_finish(self):
         installer_name = self.installer_base_name()
 
-- 
GitLab