ucb/source/ucp/webdav-curl/CurlSession.cxx | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-)
New commits: commit c8400f5acc36d2cf0c007260bdc94534a53bba90 Author: Michael Stahl <michael.st...@allotropia.de> AuthorDate: Thu Mar 14 15:47:28 2024 +0100 Commit: Michael Stahl <michael.st...@allotropia.de> CommitDate: Thu Mar 14 18:59:16 2024 +0100 ucb: webdav-curl: always set CURLOPT_NOBODY for HEAD Otherwise there will be timeout that depends on when the server will close the connection, which varies by server but can be several minutes; getting a potential error document from the server for this one request when logging is enabled is less important. Change-Id: I505b014b148ba009c400d37d826c9edb8c3a6da2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164838 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@allotropia.de> diff --git a/ucb/source/ucp/webdav-curl/CurlSession.cxx b/ucb/source/ucp/webdav-curl/CurlSession.cxx index 420e1123d589..4dde0d512e61 100644 --- a/ucb/source/ucp/webdav-curl/CurlSession.cxx +++ b/ucb/source/ucp/webdav-curl/CurlSession.cxx @@ -229,15 +229,6 @@ struct CurlOption } }; -// NOBODY will prevent logging the response body in ProcessRequest() exception -// handler, so only use it if logging is disabled -const CurlOption g_NoBody{ CURLOPT_NOBODY, - sal_detail_log_report(SAL_DETAIL_LOG_LEVEL_INFO, "ucb.ucp.webdav.curl") - == SAL_DETAIL_LOG_ACTION_IGNORE - ? 1L - : 0L, - nullptr }; - /// combined guard class to ensure things are released in correct order, /// particularly in ProcessRequest() error handling class Guard @@ -1969,7 +1960,11 @@ auto CurlSession::HEAD(OUString const& rURIReference, ::std::vector<OUString> co CurlUri const uri(CurlProcessor::URIReferenceToURI(*this, rURIReference)); ::std::vector<CurlOption> const options{ - g_NoBody, { CURLOPT_CUSTOMREQUEST, "HEAD", "CURLOPT_CUSTOMREQUEST" } + // NOBODY will prevent logging the response body in ProcessRequest() + // exception, but omitting it here results in a long timeout until the + // server closes the connection, which is worse + { CURLOPT_NOBODY, 1L, nullptr }, + { CURLOPT_CUSTOMREQUEST, "HEAD", "CURLOPT_CUSTOMREQUEST" } }; ::std::pair<::std::vector<OUString> const&, DAVResource&> const headers(rHeaderNames,