[Libreoffice-commits] core.git: desktop/Library_crashreport.mk desktop/source
Aron Budea
aron.budea at collabora.com
Wed May 16 08:46:31 UTC 2018
desktop/Library_crashreport.mk | 3 +++
desktop/source/app/crashreport.cxx | 19 ++++++++++++++++++-
desktop/source/minidump/minidump.cxx | 11 +++++++++--
3 files changed, 30 insertions(+), 3 deletions(-)
New commits:
commit 07174b62c6ee23f7b44742ecfe44d4ff8653e57f
Author: Aron Budea <aron.budea at collabora.com>
Date: Mon Mar 19 23:56:54 2018 +0100
tdf#114227: set better proxy params in cURL for crash reporting
Take proxy server from internet settings, and pass to cURL.
Allow forwarding authentication as well (explicitely setting
user/password is still missing).
Change-Id: I19a6c9057a11a5911a6117f71060d3f386953602
Reviewed-on: https://gerrit.libreoffice.org/51621
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
diff --git a/desktop/Library_crashreport.mk b/desktop/Library_crashreport.mk
index 04f6855123d6..3b9d6dd34fdc 100644
--- a/desktop/Library_crashreport.mk
+++ b/desktop/Library_crashreport.mk
@@ -30,12 +30,15 @@ $(eval $(call gb_Library_add_libs,crashreport,\
) \
))
+$(eval $(call gb_Library_use_sdk_api,crashreport))
+
$(eval $(call gb_Library_use_libraries,crashreport,\
comphelper \
cppu \
cppuhelper \
sal \
salhelper \
+ ucbhelper \
utl \
))
diff --git a/desktop/source/app/crashreport.cxx b/desktop/source/app/crashreport.cxx
index 24205e8b2b8b..29001367bb91 100644
--- a/desktop/source/app/crashreport.cxx
+++ b/desktop/source/app/crashreport.cxx
@@ -10,6 +10,8 @@
#include <desktop/crashreport.hxx>
#include <rtl/bootstrap.hxx>
#include <osl/file.hxx>
+#include <comphelper/processfactory.hxx>
+#include <ucbhelper/proxydecider.hxx>
#include <unotools/bootstrap.hxx>
#include <o3tl/char16_t2wchar_t.hxx>
@@ -70,13 +72,28 @@ void CrashReporter::AddKeyValue(const OUString& rKey, const OUString& rValue)
void CrashReporter::writeCommonInfo()
{
osl::MutexGuard aGuard(maMutex);
+
+ ucbhelper::InternetProxyDecider proxy_decider(::comphelper::getProcessComponentContext());
+
+ const OUString protocol = "https";
+ const OUString url = "crashreport.libreoffice.org";
+ const sal_Int32 port = 443;
+
+ const ucbhelper::InternetProxyServer proxy_server = proxy_decider.getProxy(protocol, url, port);
+
// limit the amount of code that needs to be executed before the crash reporting
std::string ini_path = CrashReporter::getIniFileName();
std::ofstream minidump_file(ini_path, std::ios_base::trunc);
minidump_file << "ProductName=LibreOffice\n";
minidump_file << "Version=" LIBO_VERSION_DOTTED "\n";
minidump_file << "BuildID=" << utl::Bootstrap::getBuildIdData("") << "\n";
- minidump_file << "URL=https://crashreport.libreoffice.org/submit/\n";
+ minidump_file << "URL=" << protocol << "://" << url << "/submit/\n";
+
+ if (proxy_server.aName != OUString())
+ {
+ minidump_file << "Proxy=" << proxy_server.aName << ":" << proxy_server.nPort << "\n";
+ }
+
for (auto& keyValue : maKeyValues)
{
writeToStream(minidump_file, keyValue.first, keyValue.second);
diff --git a/desktop/source/minidump/minidump.cxx b/desktop/source/minidump/minidump.cxx
index 96753d6027af..f3eefd023b75 100644
--- a/desktop/source/minidump/minidump.cxx
+++ b/desktop/source/minidump/minidump.cxx
@@ -111,9 +111,16 @@ bool uploadContent(std::map<std::string, std::string>& parameters, std::string&
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
// Set proxy information if necessary.
if (!proxy.empty())
+ {
curl_easy_setopt(curl, CURLOPT_PROXY, proxy.c_str());
- if (!proxy_user_pwd.empty())
- curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, proxy_user_pwd.c_str());
+
+ curl_easy_setopt(curl, CURLOPT_PROXYAUTH, CURLAUTH_ANYSAFE);
+
+ if (!proxy_user_pwd.empty())
+ curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, proxy_user_pwd.c_str());
+ else
+ curl_easy_setopt(curl, CURLOPT_PROXYUSERPWD, ":");
+ }
if (!ca_certificate_file.empty())
curl_easy_setopt(curl, CURLOPT_CAINFO, ca_certificate_file.c_str());
More information about the Libreoffice-commits
mailing list