diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2013-05-23 17:17:09 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-05-23 17:46:23 +0200 |
commit | 3f5c45b70864af95a6362acf4684fb57eb85e348 (patch) | |
tree | 7b9890a0989c978bcdb6e7254291aa8bb6769d53 /sfx2 | |
parent | 3a8cde7099c48574c3f5491c2cb964bfec21a5e3 (diff) |
rhbz#961460: Don't needlessly pass URLs through INetURLObject
The WebDAV UCP uses https/davs URLs that may contain a userinfo (cf. RFC 3986)
part, and INetURLObject does not support that (in accordance with RFCs 2818 and
2616) and thus creates an empty INET_PROT_NOT_VALID INetURLObject for such a
URL, leading to failure when trying to save a document to such a URL.
(Regression introduced with 966d20e35d5a2be2fce6c204af5c156c3ead7063 "CMIS ucp:
write documents back to CMIS server.")
Change-Id: Ifd396852b211cab1d29575da7fccb32306479f93
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/doc/docfile.cxx | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx index 8d22eb4fad31..746ba2040280 100644 --- a/sfx2/source/doc/docfile.cxx +++ b/sfx2/source/doc/docfile.cxx @@ -1949,6 +1949,7 @@ void SfxMedium::Transfer_Impl() ::ucbhelper::Content aDestContent; ::ucbhelper::Content::create( aDestURL, xComEnv, comphelper::getProcessComponentContext(), aDestContent ); + // For checkin, we need the object URL, not the parent folder: if ( !IsInCheckIn( ) ) { // Get the parent URL from the XChild if possible: why would the URL necessarily have @@ -1964,13 +1965,11 @@ void SfxMedium::Transfer_Impl() } } - if ( !sParentUrl.isEmpty() ) - aDest = INetURLObject( sParentUrl ); - } - else - { - // For checkin, we need the object URL, not the parent folder - aDest = INetURLObject( aDestURL ); + if ( sParentUrl.isEmpty() ) + aDestURL = aDest.GetMainURL( INetURLObject::NO_DECODE ); + // adjust to above aDest.removeSegment() + else + aDestURL = sParentUrl; } // LongName wasn't defined anywhere, only used here... get the Title instead @@ -1983,7 +1982,7 @@ void SfxMedium::Transfer_Impl() try { - aTransferContent = ::ucbhelper::Content( aDest.GetMainURL( INetURLObject::NO_DECODE ), xComEnv, comphelper::getProcessComponentContext() ); + aTransferContent = ::ucbhelper::Content( aDestURL, xComEnv, comphelper::getProcessComponentContext() ); } catch (const ::com::sun::star::ucb::ContentCreationException& ex) { |