ooo-build r11597 - in trunk: . patches/src680
- From: jholesovsky svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r11597 - in trunk: . patches/src680
- Date: Fri, 15 Feb 2008 16:43:08 +0000 (GMT)
Author: jholesovsky
Date: Fri Feb 15 16:43:08 2008
New Revision: 11597
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11597&view=rev
Log:
2008-02-15 Jan Holesovsky <kendy suse cz>
* patches/src680/webdav-locking-serve-dav-uri.diff,
patches/src680/apply: Serve dav:// and webdav:// URLs in the WebDAV
UCP.
Added:
trunk/patches/src680/webdav-locking-serve-dav-uri.diff
Modified:
trunk/ChangeLog
trunk/patches/src680/apply
Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply (original)
+++ trunk/patches/src680/apply Fri Feb 15 16:43:08 2008
@@ -564,6 +564,9 @@
# Implement uploading the changed stream to the server
webdav-locking-stream-can-save.diff, n#346711, i#29152, jholesov
+# Serve dav:// and webdav:// protocols in the WebDAV UCP
+webdav-locking-serve-dav-uri.diff, n#346713, i#29152, jholesov
+
[ GnomeVFS < ooh680-m4 ]
# WebDAV locking
# It is in this section because it needs part of the gvfs-related patches
Added: trunk/patches/src680/webdav-locking-serve-dav-uri.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/webdav-locking-serve-dav-uri.diff Fri Feb 15 16:43:08 2008
@@ -0,0 +1,238 @@
+diff --git a/tools/inc/tools/urlobj.hxx b/tools/inc/tools/urlobj.hxx
+index 199079f..4b0db1c 100644
+--- tools/inc/tools/urlobj.hxx
++++ tools/inc/tools/urlobj.hxx
+@@ -163,9 +163,11 @@ enum INetProtocol
+ INET_PROT_VND_SUN_STAR_EXPAND = 29,
+ INET_PROT_VND_SUN_STAR_TDOC = 30,
+ INET_PROT_SMB = 31,
+- INET_PROT_GENERIC = 32,
+- INET_PROT_GENERIC_HIERARCHICAL = 33,
+- INET_PROT_END = 34
++ INET_PROT_DAV = 32,
++ INET_PROT_WEBDAV = 33,
++ INET_PROT_GENERIC = 34,
++ INET_PROT_GENERIC_HIERARCHICAL = 35,
++ INET_PROT_END = 36
+ };
+
+ //============================================================================
+diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx
+index 431bfb5..29023c7 100644
+--- tools/source/fsys/urlobj.cxx
++++ tools/source/fsys/urlobj.cxx
+@@ -464,6 +464,10 @@ static INetURLObject::SchemeInfo const aSchemeInfoMap[INET_PROT_END]
+ false, false, false, true, false },
+ { "smb", "smb://", 139, true, true, false, true, true, true, true,
+ true },
++ { "dav", "dav://", 80, true, false, false, false, true, true, true,
++ true },
++ { "webdav", "webdav://", 80, true, false, false, false, true, true, true,
++ true },
+ { "", "", 0, false, false, false, false, false, false, false, false },
+ { "", "", 0, false, false, false, false, false, false, true, false }
+ };
+@@ -2113,6 +2117,7 @@ INetURLObject::getPrefix(sal_Unicode const *& rBegin,
+ PrefixInfo::INTERNAL },
+ { "cid:", 0, INET_PROT_CID, PrefixInfo::OFFICIAL },
+ { "data:", 0, INET_PROT_DATA, PrefixInfo::OFFICIAL },
++ { "dav:", 0, INET_PROT_DAV, PrefixInfo::OFFICIAL },
+ { "db:", "staroffice.db:", INET_PROT_DB, PrefixInfo::INTERNAL },
+ { "file:", 0, INET_PROT_FILE, PrefixInfo::OFFICIAL },
+ { "ftp:", 0, INET_PROT_FTP, PrefixInfo::OFFICIAL },
+@@ -2194,6 +2199,7 @@ INetURLObject::getPrefix(sal_Unicode const *& rBegin,
+ PrefixInfo::OFFICIAL },
+ { "vnd.sun.star.wfs:", 0, INET_PROT_VND_SUN_STAR_WFS,
+ PrefixInfo::OFFICIAL },
++ { "webdav:", 0, INET_PROT_WEBDAV, PrefixInfo::OFFICIAL },
+ { "wfs:", "vnd.sun.star.wfs:", INET_PROT_VND_SUN_STAR_WFS,
+ PrefixInfo::ALIAS } };
+ PrefixInfo const * pFirst = aMap + 1;
+@@ -2986,6 +2992,8 @@ bool INetURLObject::parsePath(INetProtocol eScheme,
+ case INET_PROT_VND_SUN_STAR_WEBDAV:
+ case INET_PROT_HTTPS:
+ case INET_PROT_SMB:
++ case INET_PROT_DAV:
++ case INET_PROT_WEBDAV:
+ if (pPos < pEnd && *pPos != '/')
+ return false;
+ while (pPos < pEnd && *pPos != nQueryDelimiter
+diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx
+index 16250f8..6e01a66 100644
+--- ucb/source/ucp/webdav/webdavcontent.cxx
++++ ucb/source/ucp/webdav/webdavcontent.cxx
+@@ -2801,7 +2801,11 @@ void Content::transfer(
+ //
+ const rtl::OUString aScheme = sourceURI.GetScheme().toAsciiLowerCase();
+ if ( aScheme.equalsAsciiL(
+- RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) )
++ RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) ||
++ aScheme.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM( DAV_URL_SCHEME ) ) ||
++ aScheme.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAV_URL_SCHEME ) ) )
+ {
+ sourceURI.SetScheme(
+ rtl::OUString::createFromAscii( HTTP_URL_SCHEME ) );
+@@ -2825,9 +2829,15 @@ void Content::transfer(
+ }
+
+ if ( targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
+- RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) )
++ RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) ||
++ targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM( DAV_URL_SCHEME ) ) ||
++ targetURI.GetScheme().toAsciiLowerCase().equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAV_URL_SCHEME ) ) )
++ {
+ targetURI.SetScheme(
+ rtl::OUString::createFromAscii( HTTP_URL_SCHEME ) );
++ }
+
+ // @@@ This implementation of 'transfer' only works
+ // if the source and target are located at same host.
+diff --git a/ucb/source/ucp/webdav/webdavprovider.cxx b/ucb/source/ucp/webdav/webdavprovider.cxx
+index 9790870..26c4baf 100644
+--- ucb/source/ucp/webdav/webdavprovider.cxx
++++ ucb/source/ucp/webdav/webdavprovider.cxx
+@@ -146,10 +146,13 @@ ContentProvider::queryContent(
+ !aScheme.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM( HTTPS_URL_SCHEME ) ) &&
+ !aScheme.equalsAsciiL(
+- RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) )
+- &&
++ RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) &&
+ !aScheme.equalsAsciiL(
+- RTL_CONSTASCII_STRINGPARAM( FTP_URL_SCHEME ) )
++ RTL_CONSTASCII_STRINGPARAM( FTP_URL_SCHEME ) ) &&
++ !aScheme.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM( DAV_URL_SCHEME ) ) &&
++ !aScheme.equalsAsciiL(
++ RTL_CONSTASCII_STRINGPARAM( PLAIN_WEBDAV_URL_SCHEME ) )
+ )
+ throw ucb::IllegalIdentifierException();
+
+@@ -168,14 +171,23 @@ ContentProvider::queryContent(
+ uno::Reference< ucb::XContentIdentifier > xCanonicId;
+
+ bool bNewId = false;
+- if ( aScheme.equalsAsciiL(
+- RTL_CONSTASCII_STRINGPARAM( WEBDAV_URL_SCHEME ) ) )
++ const char * const pReplace[] = {
++ WEBDAV_URL_SCHEME,
++ DAV_URL_SCHEME,
++ PLAIN_WEBDAV_URL_SCHEME,
++ NULL
++ };
++ for ( const char * const *pScheme = pReplace; *pScheme ; ++pScheme )
+ {
+- aURL = aURL.replaceAt( 0,
+- WEBDAV_URL_SCHEME_LENGTH,
+- rtl::OUString::createFromAscii(
+- HTTP_URL_SCHEME ) );
+- bNewId = true;
++ if ( aScheme.equalsAscii( *pScheme ) )
++ {
++ aURL = aURL.replaceAt( 0,
++ strlen( *pScheme ),
++ rtl::OUString::createFromAscii(
++ HTTP_URL_SCHEME ) );
++ bNewId = true;
++ break;
++ }
+ }
+
+ sal_Int32 nPos = aURL.lastIndexOf( '/' );
+diff --git a/ucb/source/ucp/webdav/webdavprovider.hxx b/ucb/source/ucp/webdav/webdavprovider.hxx
+index 7068b41..a46398f 100644
+--- ucb/source/ucp/webdav/webdavprovider.hxx
++++ ucb/source/ucp/webdav/webdavprovider.hxx
+@@ -71,16 +71,17 @@ namespace webdav_ucp {
+ // contents ) according to this scheme.
+ #define WEBDAV_URL_SCHEME \
+ "vnd.sun.star.webdav"
+-#define WEBDAV_URL_SCHEME_LENGTH 19
+
+ #define HTTP_URL_SCHEME "http"
+-#define HTTP_URL_SCHEME_LENGTH 4
+
+ #define HTTPS_URL_SCHEME "https"
+-#define HTTPS_URL_SCHEME_LENGTH 5
+
+ #define FTP_URL_SCHEME "ftp"
+
++#define DAV_URL_SCHEME "dav"
++
++#define PLAIN_WEBDAV_URL_SCHEME "webdav"
++
+ #define HTTP_CONTENT_TYPE \
+ "application/" HTTP_URL_SCHEME "-content"
+
+diff --git a/unotools/source/ucbhelper/ucblockbytes.cxx b/unotools/source/ucbhelper/ucblockbytes.cxx
+index 2938ee6..032888b 100644
+--- unotools/source/ucbhelper/ucblockbytes.cxx
++++ unotools/source/ucbhelper/ucblockbytes.cxx
+@@ -1026,6 +1026,8 @@ static sal_Bool UCBOpenContentSync(
+ if( ! aScheme.equalsIgnoreAsciiCaseAscii("http") &&
+ ! aScheme.equalsIgnoreAsciiCaseAscii("https") &&
+ ! aScheme.equalsIgnoreAsciiCaseAscii("vnd.sun.star.webdav") &&
++ ! aScheme.equalsIgnoreAsciiCaseAscii("dav") &&
++ ! aScheme.equalsIgnoreAsciiCaseAscii("webdav") &&
+ ! aScheme.equalsIgnoreAsciiCaseAscii("ftp"))
+ return _UCBOpenContentSync(
+ xLockBytes,xContent,rArg,xSink,xInteract,xProgress,xHandler);
+--- officecfg/registry/data/org/openoffice/ucb/Configuration.xcu 2007-11-07 10:54:41.000000000 +0100
++++ officecfg/registry/data/org/openoffice/ucb/Configuration.xcu 2008-02-15 17:27:31.000000000 +0100
+@@ -150,18 +150,40 @@
+ <value/>
+ </prop>
+ </node>
+- <node oor:name="Provider12" oor:op="replace">
+- <prop oor:name="ServiceName">
+- <value>com.sun.star.ucb.WebDAVContentProvider</value>
+- </prop>
+- <prop oor:name="URLTemplate">
+- <value>https</value>
+- </prop>
+- <prop oor:name="Arguments">
+- <value/>
+- </prop>
+- </node>
+- </node>
++ <node oor:name="Provider12" oor:op="replace">
++ <prop oor:name="ServiceName">
++ <value>com.sun.star.ucb.WebDAVContentProvider</value>
++ </prop>
++ <prop oor:name="URLTemplate">
++ <value>https</value>
++ </prop>
++ <prop oor:name="Arguments">
++ <value/>
++ </prop>
++ </node>
++ <node oor:name="Provider13" oor:op="replace">
++ <prop oor:name="ServiceName">
++ <value>com.sun.star.ucb.WebDAVContentProvider</value>
++ </prop>
++ <prop oor:name="URLTemplate">
++ <value>dav</value>
++ </prop>
++ <prop oor:name="Arguments">
++ <value/>
++ </prop>
++ </node>
++ <node oor:name="Provider14" oor:op="replace">
++ <prop oor:name="ServiceName">
++ <value>com.sun.star.ucb.WebDAVContentProvider</value>
++ </prop>
++ <prop oor:name="URLTemplate">
++ <value>webdav</value>
++ </prop>
++ <prop oor:name="Arguments">
++ <value/>
++ </prop>
++ </node>
++ </node>
+ </node>
+ </node>
+ </node>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]