From 2be32eedb57a9ec33b2ac476776c88d5c0169a31 Mon Sep 17 00:00:00 2001
From: Oz Linden <oz@lindenlab.com>
Date: Thu, 28 Jul 2016 13:21:04 -0400
Subject: [PATCH] fail in initialization if there is no CA bundle (instead of
 waiting for an opaque connection failure)

---
 indra/newview/llappcorehttp.cpp | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/indra/newview/llappcorehttp.cpp b/indra/newview/llappcorehttp.cpp
index 49291ea5642..d57f9c6e180 100644
--- a/indra/newview/llappcorehttp.cpp
+++ b/indra/newview/llappcorehttp.cpp
@@ -154,9 +154,19 @@ void LLAppCoreHttp::init()
 	}
 
 	// Point to our certs or SSH/https: will fail on connect
-	status = LLCore::HttpRequest::setStaticPolicyOption(LLCore::HttpRequest::PO_CA_FILE,
-														LLCore::HttpRequest::GLOBAL_POLICY_ID,
-														gDirUtilp->getCAFile(), NULL);
+    std::string ca_file = gDirUtilp->getCAFile();
+    if ( LLFile::isfile(ca_file) )
+    {
+        LL_DEBUGS("Init") << "Setting CA File to " << ca_file << LL_ENDL;
+        status = LLCore::HttpRequest::setStaticPolicyOption(LLCore::HttpRequest::PO_CA_FILE,
+                                                            LLCore::HttpRequest::GLOBAL_POLICY_ID,
+                                                            ca_file, NULL);
+    }
+    else
+    {
+        LL_ERRS("Init") << "Missing CA File; should be at " << ca_file << LL_ENDL;
+    }
+    
 	if (! status)
 	{
 		LL_ERRS("Init") << "Failed to set CA File for HTTP services.  Reason:  " << status.toString()
-- 
GitLab