summaryrefslogtreecommitdiff
path: root/ucb
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-08-18 13:49:54 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-08-18 18:33:13 +0200
commit9b30b4b1678e8be15ba51d236bd9a3e693d8d3d6 (patch)
tree512a977891901363ac5a8868ea198189d7553917 /ucb
parent28d41e60416ef10ae2a59d1c4ad34a2eb75dc408 (diff)
Fix curl proxy access for non-authenticated proxy
If rSession.m_Proxy.aName is a simple host-name, the CurlUri constructor will fail with CURLUE_BAD_SCHEME, so just ignore the error here, we only care about parsing out the username/password Change-Id: Iec2d6e7315a5899ddddf6120a43199b75bf62db2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155834 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'ucb')
-rw-r--r--ucb/source/ucp/webdav-curl/CurlSession.cxx15
1 files changed, 11 insertions, 4 deletions
diff --git a/ucb/source/ucp/webdav-curl/CurlSession.cxx b/ucb/source/ucp/webdav-curl/CurlSession.cxx
index b9161767c829..ac924beb2e17 100644
--- a/ucb/source/ucp/webdav-curl/CurlSession.cxx
+++ b/ucb/source/ucp/webdav-curl/CurlSession.cxx
@@ -1216,11 +1216,18 @@ auto CurlProcessor::ProcessRequest(
::std::optional<Auth> oAuthProxy;
if (pEnv && !rSession.m_isAuthenticatedProxy && !rSession.m_Proxy.aName.isEmpty())
{
- // the hope is that this must be a URI
- CurlUri const uri(rSession.m_Proxy.aName);
- if (!uri.GetUser().isEmpty() || !uri.GetPassword().isEmpty())
+ try
+ {
+ // the hope is that this must be a URI
+ CurlUri const uri(rSession.m_Proxy.aName);
+ if (!uri.GetUser().isEmpty() || !uri.GetPassword().isEmpty())
+ {
+ oAuthProxy.emplace(uri.GetUser(), uri.GetPassword(), CURLAUTH_ANY);
+ }
+ }
+ catch (DAVException&)
{
- oAuthProxy.emplace(uri.GetUser(), uri.GetPassword(), CURLAUTH_ANY);
+ // ignore any parsing failure here
}
}
decltype(CURLAUTH_ANY) const authSystem(CURLAUTH_NEGOTIATE | CURLAUTH_NTLM | CURLAUTH_NTLM_WB);