summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <michael.stahl@allotropia.de>2022-03-10 16:47:16 +0100
committerMichael Stahl <michael.stahl@allotropia.de>2022-03-10 18:09:57 +0100
commit66a15ffedf2e41b25d06a61542434da2948dd4d8 (patch)
treea75062fd4ca1f92c97ae19a77f5ff6c7429044b9
parent0611bf69cde2a22094d9ac190f972777537d8225 (diff)
ucb: add webdav configuration setting
Change-Id: Ifc98baec69e32d231e44b389a870e90debd5a389
-rw-r--r--officecfg/registry/schema/org/openoffice/Inet.xcs6
-rw-r--r--ucb/CppunitTest_ucb_webdav_core.mk1
-rw-r--r--ucb/Module_ucb.mk2
-rw-r--r--ucb/source/ucp/webdav-neon/webdavprovider.cxx12
4 files changed, 19 insertions, 2 deletions
diff --git a/officecfg/registry/schema/org/openoffice/Inet.xcs b/officecfg/registry/schema/org/openoffice/Inet.xcs
index 76d5d2ed0912..95d38403d19d 100644
--- a/officecfg/registry/schema/org/openoffice/Inet.xcs
+++ b/officecfg/registry/schema/org/openoffice/Inet.xcs
@@ -26,6 +26,12 @@
<info>
<desc>Contains Internet-related configurations (servers, proxies, etc.).</desc>
</info>
+ <prop oor:name="WebDAVCurl" oor:type="xs:boolean" oor:nillable="false">
+ <info>
+ <desc>Use curl HTTP/WebDAV UCP instead of neon one.</desc>
+ </info>
+ <value>false</value>
+ </prop>
<prop oor:name="ooInetNoProxy" oor:type="xs:string" oor:nillable="false">
<!-- OldPath: Inet/NoProxy -->
<!-- OldLocation: soffice.ini -->
diff --git a/ucb/CppunitTest_ucb_webdav_core.mk b/ucb/CppunitTest_ucb_webdav_core.mk
index fbd3f59f55f6..aeea8033fa95 100644
--- a/ucb/CppunitTest_ucb_webdav_core.mk
+++ b/ucb/CppunitTest_ucb_webdav_core.mk
@@ -31,6 +31,7 @@ $(eval $(call gb_CppunitTest_use_library_objects,ucb_webdav_core, \
$(eval $(call gb_CppunitTest_use_externals,ucb_webdav_core,\
boost_headers \
libxml2 \
+ neon \
curl \
))
diff --git a/ucb/Module_ucb.mk b/ucb/Module_ucb.mk
index 19c1aec96591..cea03c49ec4a 100644
--- a/ucb/Module_ucb.mk
+++ b/ucb/Module_ucb.mk
@@ -31,7 +31,7 @@ $(eval $(call gb_Module_add_targets,ucb,\
))
endif
-ifeq ($(WITH_WEBDAV),curl)
+ifeq ($(WITH_WEBDAV),neon)
$(eval $(call gb_Module_add_check_targets,ucb,\
CppunitTest_ucb_webdav_core \
diff --git a/ucb/source/ucp/webdav-neon/webdavprovider.cxx b/ucb/source/ucp/webdav-neon/webdavprovider.cxx
index 40534e80a614..bbe18ecbac61 100644
--- a/ucb/source/ucp/webdav-neon/webdavprovider.cxx
+++ b/ucb/source/ucp/webdav-neon/webdavprovider.cxx
@@ -180,11 +180,21 @@ ContentProvider::queryContent(
return xContent;
}
+#include <officecfg/Inet.hxx>
+
+extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
+ucb_webdav_ContentProvider_get_implementation(
+ css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&);
+
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
ucb_webdav_neon_ContentProvider_get_implementation(
css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any> const&)
{
- return cppu::acquire(new ContentProvider(context));
+ auto const useCurl(officecfg::Inet::Settings::WebDAVCurl::get(context));
+ if (useCurl)
+ return ucb_webdav_ContentProvider_get_implementation(context, {});
+ else
+ return cppu::acquire(new ContentProvider(context));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */