You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by pe...@apache.org on 2015/09/25 09:59:47 UTC
svn commit: r1705247 [2/3] - in /openoffice/branches/AOO410/main: ./
comphelper/inc/comphelper/ comphelper/source/misc/
framework/source/loadenv/ offapi/com/sun/star/ucb/ sfx2/inc/sfx2/
sfx2/source/dialog/ sfx2/source/doc/ sfx2/source/view/ ucb/source/...
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx Fri Sep 25 07:59:46 2015
@@ -34,11 +34,9 @@ namespace http_dav_ucp
SerfPutReqProcImpl::SerfPutReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
- const char* inLockToken,
apr_size_t inDataLen )
: SerfRequestProcessorImpl( inPath, inRequestHeaders )
, mpData( inData )
- , mpLockToken( inLockToken)
, mnDataLen( inDataLen )
{
}
@@ -59,7 +57,7 @@ serf_bucket_t * SerfPutReqProcImpl::crea
}
// create serf request
- serf_bucket_t *req_bkt = serf_request_bucket_request_create( inSerfRequest,
+ serf_bucket_t *req_bkt = serf_request_bucket_request_create( inSerfRequest,
"PUT",
getPathStr(),
body_bkt,
@@ -70,16 +68,11 @@ serf_bucket_t * SerfPutReqProcImpl::crea
serf_bucket_t* hdrs_bkt = serf_bucket_request_get_headers( req_bkt );
// general header fields provided by caller
setRequestHeaders( hdrs_bkt );
- if(mpLockToken)
- {
- // request specific header field
- serf_bucket_headers_set( hdrs_bkt, "if", mpLockToken );
- }
return req_bkt;
}
-void SerfPutReqProcImpl::processChunkOfResponseData( const char* /*data*/,
+void SerfPutReqProcImpl::processChunkOfResponseData( const char* /*data*/,
apr_size_t /*len*/ )
{
// nothing to do;
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx Fri Sep 25 07:59:46 2015
@@ -33,7 +33,6 @@ public:
SerfPutReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
- const char* inLockToken,
apr_size_t inDataLen );
@@ -51,7 +50,6 @@ protected:
private:
const char* mpData;
- const char* mpLockToken;
apr_size_t mnDataLen;
};
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx Fri Sep 25 07:59:46 2015
@@ -30,9 +30,6 @@
#include <apr_strings.h>
-//to examine returned http code
-#include "DAVException.hxx"
-
namespace http_dav_ucp
{
@@ -114,19 +111,11 @@ bool SerfRequestProcessor::processPropFi
// PROPPATCH
bool SerfRequestProcessor::processPropPatch( const std::vector< ProppatchValue > & inProperties,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus )
{
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createPropPatchReqProcImpl( mPathStr,
mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
- inProperties,
- inLockToken );
+ inProperties );
outSerfStatus = runProcessor();
return outSerfStatus == APR_SUCCESS;
@@ -205,19 +194,11 @@ bool SerfRequestProcessor::processHead(
// PUT
bool SerfRequestProcessor::processPut( const char* inData,
apr_size_t inDataLen,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus )
{
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createPutReqProcImpl( mPathStr,
mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
inData,
- inLockToken,
inDataLen );
outSerfStatus = runProcessor();
@@ -229,7 +210,6 @@ bool SerfRequestProcessor::processPost(
apr_size_t inDataLen,
const rtl::OUString & inContentType,
const rtl::OUString & inReferer,
- const com::sun::star::ucb::Lock inLock,
const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm,
apr_status_t& outSerfStatus )
{
@@ -237,17 +217,10 @@ bool SerfRequestProcessor::processPost(
rtl::OUStringToOString( inContentType, RTL_TEXTENCODING_UTF8 ).getStr() );
mReferer = apr_pstrdup( mrSerfSession.getAprPool(),
rtl::OUStringToOString( inReferer, RTL_TEXTENCODING_UTF8 ).getStr() );
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createPostReqProcImpl( mPathStr,
mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
inData,
inDataLen,
- inLockToken,
mContentType,
mReferer,
xioInStrm );
@@ -261,7 +234,6 @@ bool SerfRequestProcessor::processPost(
apr_size_t inDataLen,
const rtl::OUString & inContentType,
const rtl::OUString & inReferer,
- const com::sun::star::ucb::Lock inLock,
const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm,
apr_status_t& outSerfStatus )
{
@@ -269,17 +241,10 @@ bool SerfRequestProcessor::processPost(
rtl::OUStringToOString( inContentType, RTL_TEXTENCODING_UTF8 ).getStr() );
mReferer = apr_pstrdup( mrSerfSession.getAprPool(),
rtl::OUStringToOString( inReferer, RTL_TEXTENCODING_UTF8 ).getStr() );
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createPostReqProcImpl( mPathStr,
mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
inData,
inDataLen,
- inLockToken,
mContentType,
mReferer,
xioOutStrm );
@@ -289,36 +254,20 @@ bool SerfRequestProcessor::processPost(
}
// DELETE
-bool SerfRequestProcessor::processDelete( const com::sun::star::ucb::Lock inLock,
- apr_status_t& outSerfStatus )
+bool SerfRequestProcessor::processDelete( apr_status_t& outSerfStatus )
{
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createDeleteReqProcImpl( mPathStr,
- mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
- inLockToken );
+ mrSerfSession.getRequestEnvironment().m_aRequestHeaders );
outSerfStatus = runProcessor();
return outSerfStatus == APR_SUCCESS;
}
// MKCOL
-bool SerfRequestProcessor::processMkCol( const com::sun::star::ucb::Lock inLock,
- apr_status_t& outSerfStatus )
+bool SerfRequestProcessor::processMkCol( apr_status_t& outSerfStatus )
{
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createMkColReqProcImpl( mPathStr,
- mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
- inLockToken );
+ mrSerfSession.getRequestEnvironment().m_aRequestHeaders );
outSerfStatus = runProcessor();
return outSerfStatus == APR_SUCCESS;
@@ -327,22 +276,14 @@ bool SerfRequestProcessor::processMkCol(
// COPY
bool SerfRequestProcessor::processCopy( const rtl::OUString & inDestinationPath,
const bool inOverwrite,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus )
{
mDestPathStr = apr_pstrdup( mrSerfSession.getAprPool(),
rtl::OUStringToOString( inDestinationPath, RTL_TEXTENCODING_UTF8 ).getStr() );
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createCopyReqProcImpl( mPathStr,
mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
mDestPathStr,
- inOverwrite,
- inLockToken );
+ inOverwrite );
outSerfStatus = runProcessor();
return outSerfStatus == APR_SUCCESS;
@@ -351,95 +292,14 @@ bool SerfRequestProcessor::processCopy(
// MOVE
bool SerfRequestProcessor::processMove( const rtl::OUString & inDestinationPath,
const bool inOverwrite,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus )
{
mDestPathStr = apr_pstrdup( mrSerfSession.getAprPool(),
rtl::OUStringToOString( inDestinationPath, RTL_TEXTENCODING_UTF8 ).getStr() );
- char * inLockToken = static_cast<char*>(0);
- if(inLock.LockTokens.getLength() > 0)
- {
- inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
- }
mpProcImpl = createMoveReqProcImpl( mPathStr,
mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
mDestPathStr,
- inOverwrite,
- inLockToken );
- outSerfStatus = runProcessor();
-
- return outSerfStatus == APR_SUCCESS;
-}
-
-//LOCK creating a new lock
-bool SerfRequestProcessor::processLock( const rtl::OUString & inDestinationPath,
- const com::sun::star::ucb::Lock& inLock,
- DAVPropertyValue & outLock,
- apr_status_t& outSerfStatus )
-{
- mDestPathStr = apr_pstrdup( mrSerfSession.getAprPool(),
- rtl::OUStringToOString( inDestinationPath, RTL_TEXTENCODING_UTF8 ).getStr() );
- char * Timeout;
- if(inLock.Timeout == -1)
- Timeout = apr_psprintf( mrSerfSession.getAprPool(), "Infinite" );
- else
- Timeout = apr_psprintf( mrSerfSession.getAprPool(), "Second-%ld", inLock.Timeout );
-
- mpProcImpl = createLockReqProcImpl( mPathStr,
- mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
- inLock,
- Timeout,
- outLock);
- outSerfStatus = runProcessor();
-
- return outSerfStatus == APR_SUCCESS;
-}
-
-//LOCK refresh an existing lock
-bool SerfRequestProcessor::processLockRefresh( const rtl::OUString & inDestinationPath,
- const com::sun::star::ucb::Lock& inLock,
- DAVPropertyValue & outLock,
- apr_status_t& outSerfStatus )
-{
- mDestPathStr = apr_pstrdup( mrSerfSession.getAprPool(),
- rtl::OUStringToOString( inDestinationPath, RTL_TEXTENCODING_UTF8 ).getStr() );
- char * Timeout;
- if(inLock.Timeout == -1)
- Timeout = apr_psprintf( mrSerfSession.getAprPool(), "Infinite" );
- else
- Timeout = apr_psprintf( mrSerfSession.getAprPool(), "Second-%ld", inLock.Timeout );
-
- char * inLockToken = apr_psprintf( mrSerfSession.getAprPool(), "(<%s>)",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
-
- mpProcImpl = createLockRefreshProcImpl( mPathStr,
- mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
- inLock,
- inLockToken,
- Timeout,
- outLock);
- outSerfStatus = runProcessor();
-
- return outSerfStatus == APR_SUCCESS;
-}
-
-//ULOCK unlock an existing lock
-bool SerfRequestProcessor::processUnlock( const rtl::OUString & inDestinationPath,
- const com::sun::star::ucb::Lock& inLock,
- apr_status_t& outSerfStatus )
-{
- mDestPathStr = apr_pstrdup( mrSerfSession.getAprPool(),
- rtl::OUStringToOString( inDestinationPath, RTL_TEXTENCODING_UTF8 ).getStr() );
-
- char * aToken = apr_psprintf( mrSerfSession.getAprPool(), "<%s>",
- rtl::OUStringToOString(inLock.LockTokens[0], RTL_TEXTENCODING_UTF8 ).getStr() );
-
- mpProcImpl = createUnlockProcImpl( mPathStr,
- mrSerfSession.getRequestEnvironment().m_aRequestHeaders,
- inLock,
- aToken );
-
+ inOverwrite );
outSerfStatus = runProcessor();
return outSerfStatus == APR_SUCCESS;
@@ -456,8 +316,7 @@ apr_status_t SerfRequestProcessor::runPr
}
// create serf request
- OSL_ASSERT(mrSerfSession.getSerfConnection() != NULL);
- serf_connection_request_create( mrSerfSession.getSerfConnection(),
+ serf_connection_request_create( mrSerfSession.getSerfConnection(),
Serf_SetupRequest,
this );
@@ -468,19 +327,15 @@ apr_status_t SerfRequestProcessor::runPr
apr_pool_t* pAprPool = mrSerfSession.getAprPool();
while ( true )
{
- status = serf_context_run( pSerfContext,
- SERF_DURATION_FOREVER,
+ status = serf_context_run( pSerfContext,
+ SERF_DURATION_FOREVER,
pAprPool );
if ( APR_STATUS_IS_TIMEUP( status ) )
{
continue;
}
- if ( status != APR_SUCCESS )
+ if ( status != APR_SUCCESS )
{
-#if OSL_DEBUG_LEVEL > 0
- char buff[512];
- OSL_TRACE("SerfRequestProcessor::runProcessor, status != APR_SUCCESS: %d (%s)",status, apr_strerror(status, buff, 512));
-#endif
break;
}
if ( mbProcessingDone )
@@ -501,7 +356,6 @@ void SerfRequestProcessor::postprocessPr
return;
}
- OSL_TRACE("SerfRequestProcessor::postprocessProcessor:%d",__LINE__);
switch ( inStatus )
{
case APR_EGENERAL:
@@ -525,8 +379,8 @@ void SerfRequestProcessor::postprocessPr
}
else
{
- mpDAVException = new DAVException( DAVException::DAV_HTTP_ERROR,
- mHTTPStatusCodeText,
+ mpDAVException = new DAVException( DAVException::DAV_HTTP_ERROR,
+ mHTTPStatusCodeText,
mnHTTPStatusCode );
}
break;
@@ -534,17 +388,12 @@ void SerfRequestProcessor::postprocessPr
case SC_MOVED_TEMPORARILY:
case SC_SEE_OTHER:
case SC_TEMPORARY_REDIRECT:
- mpDAVException = new DAVException( DAVException::DAV_HTTP_REDIRECT,
+ mpDAVException = new DAVException( DAVException::DAV_HTTP_REDIRECT,
mRedirectLocation );
break;
- case SC_LOCKED:
- mpDAVException = new DAVException( DAVException::DAV_LOCKED,
- mHTTPStatusCodeText,
- mnHTTPStatusCode );
- break;
default:
- mpDAVException = new DAVException( DAVException::DAV_HTTP_ERROR,
- mHTTPStatusCodeText,
+ mpDAVException = new DAVException( DAVException::DAV_HTTP_ERROR,
+ mHTTPStatusCodeText,
mnHTTPStatusCode );
break;
}
@@ -555,12 +404,13 @@ void SerfRequestProcessor::postprocessPr
mpDAVException = new DAVException( DAVException::DAV_HTTP_ERROR );
break;
}
+
}
-apr_status_t SerfRequestProcessor::provideSerfCredentials( char ** outUsername,
+apr_status_t SerfRequestProcessor::provideSerfCredentials( char ** outUsername,
char ** outPassword,
- serf_request_t * inRequest,
- int inCode,
+ serf_request_t * inRequest,
+ int inCode,
const char *inAuthProtocol,
const char *inRealm,
apr_pool_t *inAprPool )
@@ -636,7 +486,7 @@ apr_status_t SerfRequestProcessor::handl
// some general response handling and error handling
{
- if ( !inSerfResponseBucket )
+ if ( !inSerfResponseBucket )
{
/* A NULL response can come back if the request failed completely */
mbProcessingDone = true;
@@ -645,29 +495,11 @@ apr_status_t SerfRequestProcessor::handl
serf_status_line sl;
apr_status_t status = serf_bucket_response_status( inSerfResponseBucket, &sl );
- if ( status )
+ if ( status )
{
mbProcessingDone = false; // allow another try in order to get a response
return status;
}
- serf_bucket_t *headers = serf_bucket_response_get_headers( inSerfResponseBucket );
-
- // check header according:
- // http://tools.ietf.org/html/rfc7231#section-7.4.2
- // need to do this so we can adjust the protocol accordingly
- // serf_bucket_headers_get is case independent
- const char* server = serf_bucket_headers_get( headers, "server" );
- if( server )
- {
- //update the server type on session
- mrSerfSession.setServerHeaderField( ::rtl::OUString::createFromAscii( server ) );
- }
- //the following extension is MS IIS specific,
- //see https://msdn.microsoft.com/en-us/library/cc250064.aspx
- //site last checked on 2015-03-02
- //TODO i126305 need to be added when serf is updated to a version supporting Windows authentication
- //const char* msDavExtErr = serf_bucket_headers_get( headers, "X-MSDAVEXT_ERROR" );
-
// TODO - check, if response status code handling is correct
mnHTTPStatusCode = ( sl.version != 0 && sl.code >= 0 )
? static_cast< sal_uInt16 >( sl.code )
@@ -676,7 +508,7 @@ apr_status_t SerfRequestProcessor::handl
{
mHTTPStatusCodeText = ::rtl::OUString::createFromAscii( sl.reason );
}
- if ( ( sl.version == 0 || sl.code < 0 ) ||
+ if ( ( sl.version == 0 || sl.code < 0 ) ||
mnHTTPStatusCode >= 300 )
{
if ( mnHTTPStatusCode == 301 ||
@@ -685,6 +517,7 @@ apr_status_t SerfRequestProcessor::handl
mnHTTPStatusCode == 307 )
{
// new location for certain redirections
+ serf_bucket_t *headers = serf_bucket_response_get_headers( inSerfResponseBucket );
const char* location = serf_bucket_headers_get( headers, "Location" );
if ( location )
{
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx Fri Sep 25 07:59:46 2015
@@ -32,7 +32,6 @@
#include "DAVResource.hxx"
#include "DAVException.hxx"
-#include "SerfTypes.hxx"
#include "SerfInputStream.hxx"
#include <com/sun/star/io/XOutputStream.hpp>
@@ -63,7 +62,6 @@ public:
// PROPPATCH
bool processPropPatch( const std::vector< ProppatchValue > & inProperties,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus );
// GET
@@ -94,7 +92,6 @@ public:
// PUT
bool processPut( const char* inData,
apr_size_t inDataLen,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus );
// POST
@@ -102,7 +99,6 @@ public:
apr_size_t inDataLen,
const rtl::OUString & inContentType,
const rtl::OUString & inReferer,
- const com::sun::star::ucb::Lock inLock,
const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm,
apr_status_t& outSerfStatus );
@@ -111,47 +107,25 @@ public:
apr_size_t inDataLen,
const rtl::OUString & inContentType,
const rtl::OUString & inReferer,
- const com::sun::star::ucb::Lock inLock,
const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm,
apr_status_t& outSerfStatus );
// DELETE
- bool processDelete( const com::sun::star::ucb::Lock inLock,
- apr_status_t& outSerfStatus );
+ bool processDelete( apr_status_t& outSerfStatus );
// MKCOL
- bool processMkCol( const com::sun::star::ucb::Lock inLock,
- apr_status_t& outSerfStatus );
+ bool processMkCol( apr_status_t& outSerfStatus );
// COPY
bool processCopy( const rtl::OUString & inDestinationPath,
const bool inOverwrite,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus );
// MOVE
bool processMove( const rtl::OUString & inDestinationPath,
const bool inOverwrite,
- const com::sun::star::ucb::Lock inLock,
apr_status_t& outSerfStatus );
- // LOCK
- bool processLock( const rtl::OUString & inDestinationPath,
- const com::sun::star::ucb::Lock& inLock,
- DAVPropertyValue & outLock,
- apr_status_t& outSerfStatus );
-
- // LOCK refresh
- bool processLockRefresh( const rtl::OUString & inDestinationPath,
- const com::sun::star::ucb::Lock& inLock,
- DAVPropertyValue & outLock,
- apr_status_t& outSerfStatus );
-
- //UNLOCK
- bool processUnlock( const rtl::OUString & inDestinationPath,
- const com::sun::star::ucb::Lock& inLock,
- apr_status_t& outSerfStatus );
-
apr_status_t provideSerfCredentials( char ** outUsername,
char ** outPassword,
serf_request_t * inRequest,
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.cxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.cxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.cxx Fri Sep 25 07:59:46 2015
@@ -22,7 +22,6 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_ucb.hxx"
-#include "SerfTypes.hxx"
#include "SerfRequestProcessorImplFac.hxx"
#include "SerfPropFindReqProcImpl.hxx"
#include "SerfPropPatchReqProcImpl.hxx"
@@ -34,9 +33,6 @@
#include "SerfMkColReqProcImpl.hxx"
#include "SerfCopyReqProcImpl.hxx"
#include "SerfMoveReqProcImpl.hxx"
-#include "SerfLockReqProcImpl.hxx"
-#include "SerfLockRefreshProcImpl.hxx"
-#include "SerfUnlockProcImpl.hxx"
namespace http_dav_ucp
{
@@ -68,13 +64,11 @@ namespace http_dav_ucp
SerfRequestProcessorImpl* createPropPatchReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
- const std::vector< ProppatchValue > & inProperties,
- const char* inLockToken )
+ const std::vector< ProppatchValue > & inProperties )
{
SerfRequestProcessorImpl* pReqProcImpl = new SerfPropPatchReqProcImpl( inPath,
inRequestHeaders,
- inProperties,
- inLockToken );
+ inProperties );
return pReqProcImpl;
}
@@ -142,13 +136,11 @@ namespace http_dav_ucp
SerfRequestProcessorImpl* createPutReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
- const char* inLockToken,
apr_size_t inDataLen )
{
SerfRequestProcessorImpl* pReqProcImpl = new SerfPutReqProcImpl( inPath,
inRequestHeaders,
inData,
- inLockToken,
inDataLen );
return pReqProcImpl;
}
@@ -157,7 +149,6 @@ namespace http_dav_ucp
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
apr_size_t inDataLen,
- const char* inLockToken,
const char* inContentType,
const char* inReferer,
const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm )
@@ -166,7 +157,6 @@ namespace http_dav_ucp
inRequestHeaders,
inData,
inDataLen,
- inLockToken,
inContentType,
inReferer,
xioInStrm );
@@ -177,7 +167,6 @@ namespace http_dav_ucp
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
apr_size_t inDataLen,
- const char* inLockToken,
const char* inContentType,
const char* inReferer,
const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm )
@@ -186,7 +175,6 @@ namespace http_dav_ucp
inRequestHeaders,
inData,
inDataLen,
- inLockToken,
inContentType,
inReferer,
xioOutStrm );
@@ -194,92 +182,42 @@ namespace http_dav_ucp
}
SerfRequestProcessorImpl* createDeleteReqProcImpl( const char* inPath,
- const DAVRequestHeaders& inRequestHeaders,
- const char * inLockToken )
+ const DAVRequestHeaders& inRequestHeaders )
{
SerfRequestProcessorImpl* pReqProcImpl = new SerfDeleteReqProcImpl( inPath,
- inRequestHeaders,
- inLockToken );
+ inRequestHeaders );
return pReqProcImpl;
}
SerfRequestProcessorImpl* createMkColReqProcImpl( const char* inPath,
- const DAVRequestHeaders& inRequestHeaders,
- const char * inLockToken )
+ const DAVRequestHeaders& inRequestHeaders )
{
SerfRequestProcessorImpl* pReqProcImpl = new SerfMkColReqProcImpl( inPath,
- inRequestHeaders,
- inLockToken );
+ inRequestHeaders );
return pReqProcImpl;
}
SerfRequestProcessorImpl* createCopyReqProcImpl( const char* inSourcePath,
const DAVRequestHeaders& inRequestHeaders,
const char* inDestinationPath,
- const bool inOverwrite,
- const char* inLockToken )
+ const bool inOverwrite )
{
SerfRequestProcessorImpl* pReqProcImpl = new SerfCopyReqProcImpl( inSourcePath,
inRequestHeaders,
inDestinationPath,
- inOverwrite,
- inLockToken );
+ inOverwrite );
return pReqProcImpl;
}
SerfRequestProcessorImpl* createMoveReqProcImpl( const char* inSourcePath,
const DAVRequestHeaders& inRequestHeaders,
const char* inDestinationPath,
- const bool inOverwrite,
- const char* inLockToken )
+ const bool inOverwrite )
{
SerfRequestProcessorImpl* pReqProcImpl = new SerfMoveReqProcImpl( inSourcePath,
inRequestHeaders,
inDestinationPath,
- inOverwrite,
- inLockToken );
- return pReqProcImpl;
- }
-
- SerfRequestProcessorImpl* createLockReqProcImpl( const char* inSourcePath,
- const DAVRequestHeaders& inRequestHeaders,
- const ucb::Lock& inLock,
- const char* inTimeout,
- DAVPropertyValue & outLock)
- {
- SerfRequestProcessorImpl* pReqProcImpl = new SerfLockReqProcImpl( inSourcePath,
- inRequestHeaders,
- inLock,
- inTimeout,
- outLock);
- return pReqProcImpl;
- }
-
- SerfRequestProcessorImpl* createLockRefreshProcImpl( const char* inSourcePath,
- const DAVRequestHeaders& inRequestHeaders,
- const ucb::Lock& inLock,
- const char* inLockToken,
- const char* inTimeout,
- DAVPropertyValue & outLock)
- {
- SerfRequestProcessorImpl* pReqProcImpl = new SerfLockRefreshProcImpl( inSourcePath,
- inRequestHeaders,
- inLock,
- inLockToken,
- inTimeout,
- outLock);
- return pReqProcImpl;
- }
-
- SerfRequestProcessorImpl* createUnlockProcImpl( const char* inSourcePath,
- const DAVRequestHeaders& inRequestHeaders,
- const ucb::Lock& inLock,
- const char* inToken )
- {
- SerfRequestProcessorImpl* pReqProcImpl = new SerfUnlockProcImpl( inSourcePath,
- inRequestHeaders,
- inLock,
- inToken );
+ inOverwrite );
return pReqProcImpl;
}
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.hxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.hxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfRequestProcessorImplFac.hxx Fri Sep 25 07:59:46 2015
@@ -27,7 +27,6 @@
#include "DAVTypes.hxx"
#include "DAVResource.hxx"
-#include "SerfTypes.hxx"
#include "SerfRequestProcessorImpl.hxx"
#include "SerfInputStream.hxx"
#include <com/sun/star/io/XOutputStream.hpp>
@@ -47,8 +46,7 @@ namespace http_dav_ucp
SerfRequestProcessorImpl* createPropPatchReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
- const std::vector< ProppatchValue > & inProperties,
- const char* inLockToken );
+ const std::vector< ProppatchValue > & inProperties );
SerfRequestProcessorImpl* createGetReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
@@ -78,14 +76,12 @@ namespace http_dav_ucp
SerfRequestProcessorImpl* createPutReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
- const char* inLockToken,
apr_size_t inDataLen );
SerfRequestProcessorImpl* createPostReqProcImpl( const char* inPath,
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
apr_size_t inDataLen,
- const char* inLockToken,
const char* inContentType,
const char* inReferer,
const com::sun::star::uno::Reference< SerfInputStream >& xioInStrm );
@@ -94,48 +90,25 @@ namespace http_dav_ucp
const DAVRequestHeaders& inRequestHeaders,
const char* inData,
apr_size_t inDataLen,
- const char* inLockToken,
const char* inContentType,
const char* inReferer,
const com::sun::star::uno::Reference< com::sun::star::io::XOutputStream >& xioOutStrm );
SerfRequestProcessorImpl* createDeleteReqProcImpl( const char* inPath,
- const DAVRequestHeaders& inRequestHeaders,
- const char * inLockToken );
+ const DAVRequestHeaders& inRequestHeaders );
SerfRequestProcessorImpl* createMkColReqProcImpl( const char* inPath,
- const DAVRequestHeaders& inRequestHeaders,
- const char * inLockToken );
+ const DAVRequestHeaders& inRequestHeaders );
SerfRequestProcessorImpl* createCopyReqProcImpl( const char* inSourcePath,
const DAVRequestHeaders& inRequestHeaders,
const char* inDestinationPath,
- const bool inOverwrite,
- const char* inLockToken );
+ const bool inOverwrite );
SerfRequestProcessorImpl* createMoveReqProcImpl( const char* inSourcePath,
const DAVRequestHeaders& inRequestHeaders,
const char* inDestinationPath,
- const bool inOverwrite,
- const char* inLockToken );
-
- SerfRequestProcessorImpl* createLockReqProcImpl( const char* inSourcePath,
- const DAVRequestHeaders& inRequestHeaders,
- const ucb::Lock& inLock,
- const char* inTimeout,
- DAVPropertyValue & outLock );
-
- SerfRequestProcessorImpl* createLockRefreshProcImpl( const char* inSourcePath,
- const DAVRequestHeaders& inRequestHeaders,
- const ucb::Lock& inLock,
- const char* inToken,
- const char* inTimeout,
- DAVPropertyValue & outLock );
-
- SerfRequestProcessorImpl* createUnlockProcImpl( const char* inSourcePath,
- const DAVRequestHeaders& inRequestHeaders,
- const ucb::Lock& inLock,
- const char* inToken );
+ const bool inOverwrite );
} // namespace http_dav_ucp
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.cxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.cxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.cxx Fri Sep 25 07:59:46 2015
@@ -26,8 +26,6 @@
#include <vector>
#include <string.h>
#include <rtl/string.h>
-#include <rtl/ustrbuf.hxx>
-#include <osl/time.h>
#include "comphelper/sequence.hxx"
#include "ucbhelper/simplecertificatevalidationrequest.hxx"
@@ -59,9 +57,10 @@
using namespace com::sun::star;
using namespace http_dav_ucp;
+
// -------------------------------------------------------------------
// static members!
-SerfLockStore SerfSession::m_aSerfLockStore;
+//SerfLockStore SerfSession::m_aSerfLockStore;
// -------------------------------------------------------------------
// Constructor
@@ -76,7 +75,6 @@ SerfSession::SerfSession(
, m_aUri( inUri )
, m_aProxyName()
, m_nProxyPort( 0 )
- , m_aServerHeaderField()
, m_pSerfConnection( 0 )
, m_pSerfContext( 0 )
, m_bIsHeadRequestInProgress( false )
@@ -99,7 +97,6 @@ SerfSession::~SerfSession( )
{
serf_connection_close( m_pSerfConnection );
m_pSerfConnection = 0;
- OSL_TRACE("SerfSession::~SerfSession: closed serf connection");
}
}
@@ -129,7 +126,6 @@ void SerfSession::Init()
// Not yet initialized. Create new session.
bCreateNewSession = true;
- OSL_TRACE("SerfSession::Init: serf connection created");
}
else
{
@@ -170,7 +166,7 @@ void SerfSession::Init()
if ( m_aProxyName.getLength() )
{
apr_sockaddr_t *proxy_address = NULL;
- status = apr_sockaddr_info_get( &proxy_address,
+ status = apr_sockaddr_info_get( &proxy_address,
rtl::OUStringToOString( m_aProxyName, RTL_TEXTENCODING_UTF8 ).getStr(),
APR_UNSPEC,
static_cast<apr_port_t>(m_nProxyPort),
@@ -227,55 +223,6 @@ char* SerfSession::getHostinfo()
return m_aUri.getAprUri()->hostinfo;
}
-// -------------------------------------------------------------------
-// helper function
-// it composes the uri for lockstore registration
-rtl::OUString SerfSession::composeCurrentUri(const rtl::OUString & inPath)
-{
- rtl::OUString aScheme( m_aUri.GetScheme() );
- rtl::OUStringBuffer aBuf( aScheme );
- aBuf.appendAscii( "://" );
- if ( m_aUri.GetUserInfo().getLength() > 0 )
- {
- aBuf.append( m_aUri.GetUserInfo() );
- aBuf.appendAscii( "@" );
- }
- // Is host a numeric IPv6 address?
- if ( ( m_aUri.GetHost().indexOf( ':' ) != -1 ) &&
- ( m_aUri.GetHost()[ 0 ] != sal_Unicode( '[' ) ) )
- {
- aBuf.appendAscii( "[" );
- aBuf.append( m_aUri.GetHost() );
- aBuf.appendAscii( "]" );
- }
- else
- {
- aBuf.append( m_aUri.GetHost() );
- }
-
- // append port, but only, if not default port.
- bool bAppendPort = true;
- sal_Int32 aPort = m_aUri.GetPort();
- switch ( aPort )
- {
- case DEFAULT_HTTP_PORT:
- bAppendPort = aScheme.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "http" ) );
- break;
-
- case DEFAULT_HTTPS_PORT:
- bAppendPort = !aScheme.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "https" ) );
- break;
- }
- if ( bAppendPort )
- {
- aBuf.appendAscii( ":" );
- aBuf.append( rtl::OUString::valueOf( aPort ) );
- }
- aBuf.append( inPath );
-
- rtl::OUString aUri(aBuf.makeStringAndClear() );
- return aUri;
-}
// -------------------------------------------------------------------
// virtual
@@ -312,11 +259,11 @@ apr_status_t SerfSession::setupSerfConne
apr_pool_t* /*inAprPool*/ )
{
serf_bucket_t *tmpInputBkt;
- tmpInputBkt = serf_context_bucket_socket_create( getSerfContext(),
- inAprSocket,
+ tmpInputBkt = serf_context_bucket_socket_create( getSerfContext(),
+ inAprSocket,
getSerfBktAlloc() );
-
- if ( isSSLNeeded() )
+
+ if ( isSSLNeeded() )
{
tmpInputBkt = serf_bucket_ssl_decrypt_create( tmpInputBkt,
0,
@@ -329,7 +276,7 @@ apr_status_t SerfSession::setupSerfConne
NULL,
Serf_CertificateChainValidation,
this);
- serf_ssl_set_hostname( serf_bucket_ssl_decrypt_context_get( tmpInputBkt ),
+ serf_ssl_set_hostname( serf_bucket_ssl_decrypt_context_get( tmpInputBkt ),
getHostinfo() );
*outSerfOutputBucket = serf_bucket_ssl_encrypt_create( *outSerfOutputBucket,
@@ -343,10 +290,10 @@ apr_status_t SerfSession::setupSerfConne
}
apr_status_t SerfSession::provideSerfCredentials( bool bGiveProvidedCredentialsASecondTry,
- char ** outUsername,
+ char ** outUsername,
char ** outPassword,
- serf_request_t * /*inRequest*/,
- int /*inCode*/,
+ serf_request_t * /*inRequest*/,
+ int /*inCode*/,
const char *inAuthProtocol,
const char *inRealm,
apr_pool_t *inAprPool )
@@ -653,7 +600,7 @@ serf_bucket_t* SerfSession::acceptSerfRe
SerfBktAlloc );
// create response bucket
- responseBkt = serf_bucket_response_create( responseBkt,
+ responseBkt = serf_bucket_response_create( responseBkt,
SerfBktAlloc );
if ( isHeadRequestInProgress() )
@@ -746,16 +693,7 @@ void SerfSession::PROPPATCH( const rtl::
apr_status_t status = APR_SUCCESS;
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
- //check whether a lock on this resource is already owned
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
aReqProc->processPropPatch( inValues,
- inLock,
status );
HandleError( aReqProc );
@@ -905,18 +843,8 @@ void SerfSession::PUT( const rtl::OUStri
if ( !getDataFromInputStream( inInputStream, aDataToSend, false ) )
throw DAVException( DAVException::DAV_INVALID_ARG );
apr_status_t status = APR_SUCCESS;
-
- //check whether a lock on this resource is already owned
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
aReqProc->processPut( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
aDataToSend.getLength(),
- inLock,
status );
HandleError( aReqProc );
@@ -946,19 +874,10 @@ SerfSession::POST( const rtl::OUString &
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
uno::Reference< SerfInputStream > xInputStream( new SerfInputStream );
apr_status_t status = APR_SUCCESS;
- //check whether a lock on this resource is already owned
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
aReqProc->processPost( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
aDataToSend.getLength(),
rContentType,
rReferer,
- inLock,
xInputStream,
status );
@@ -989,19 +908,10 @@ void SerfSession::POST( const rtl::OUStr
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
apr_status_t status = APR_SUCCESS;
- //check whether a lock on this resource is already owned
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
aReqProc->processPost( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
aDataToSend.getLength(),
rContentType,
rReferer,
- inLock,
oOutputStream,
status );
@@ -1021,15 +931,7 @@ void SerfSession::MKCOL( const rtl::OUSt
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
apr_status_t status = APR_SUCCESS;
- //check whether a lock on the destination resource is already owned
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
- aReqProc->processMkCol( inLock, status );
+ aReqProc->processMkCol( status );
HandleError( aReqProc );
}
@@ -1050,17 +952,8 @@ void SerfSession::COPY( const rtl::OUStr
SerfUri theSourceUri( inSourceURL );
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( theSourceUri.GetPath() ) );
apr_status_t status = APR_SUCCESS;
- //check whether a lock on the destination resource is already owned
- rtl::OUString aUri( composeCurrentUri( inDestinationURL ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
aReqProc->processCopy( inDestinationURL,
(inOverWrite ? true : false),
- inLock,
status );
HandleError( aReqProc );
@@ -1082,17 +975,8 @@ void SerfSession::MOVE( const rtl::OUStr
SerfUri theSourceUri( inSourceURL );
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( theSourceUri.GetPath() ) );
apr_status_t status = APR_SUCCESS;
- //check whether a lock on the destination resource is already owned
- rtl::OUString aUri( composeCurrentUri( inDestinationURL ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
aReqProc->processMove( inDestinationURL,
(inOverWrite ? true : false),
- inLock,
status );
HandleError( aReqProc );
@@ -1111,33 +995,25 @@ void SerfSession::DESTROY( const rtl::OU
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
apr_status_t status = APR_SUCCESS;
- //check whether a lock on this resource is already owned
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- ucb::Lock inLock;
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
- inLock = pLock->getLock();
- }
- aReqProc->processDelete( inLock, status );
+ aReqProc->processDelete( status );
HandleError( aReqProc );
}
// -------------------------------------------------------------------
-
+/*
namespace
{
sal_Int32 lastChanceToSendRefreshRequest( TimeValue const & rStart,
- sal_Int32 timeout )
+ int timeout )
{
TimeValue aEnd;
osl_getSystemTime( &aEnd );
// Try to estimate a safe absolute time for sending the
// lock refresh request.
- sal_Int32 lastChanceToSendRefreshRequest = DAVINFINITY;
- if ( timeout != DAVINFINITY )
+ sal_Int32 lastChanceToSendRefreshRequest = -1;
+ if ( timeout != NE_TIMEOUT_INFINITE )
{
sal_Int32 calltime = aEnd.Seconds - rStart.Seconds;
if ( calltime <= timeout )
@@ -1154,62 +1030,108 @@ namespace
}
} // namespace
-
+*/
// -------------------------------------------------------------------
// LOCK (set new lock)
// -------------------------------------------------------------------
void SerfSession::LOCK( const ::rtl::OUString & inPath,
- ucb::Lock & rLock,
+ ucb::Lock & /*rLock*/,
const DAVRequestEnvironment & rEnv )
throw ( DAVException )
{
osl::Guard< osl::Mutex > theGuard( m_aMutex );
- //before locking, search in the lock store if we already own a lock for this resource
- //if present, return with exception DAV_LOCKED_SELF
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( pLock )
- {
-//already present, meaning already locked by the same AOO session and already in the lockstore
-//just return, nothing to do
- return;
- }
-
Init( rEnv );
boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
- apr_status_t status = APR_SUCCESS;
+ HandleError( aReqProc );
+ /* Create a depth zero, exclusive write lock, with default timeout
+ * (allowing a server to pick a default). token, owner and uri are
+ * unset. */
+ /*
+ SerfLock * theLock = ne_lock_create();
- //the returned property, a sequence of locks
- //only the first is used
- DAVPropertyValue outLock;
+ // Set the lock uri
+ ne_uri aUri;
+ ne_uri_parse( rtl::OUStringToOString( makeAbsoluteURL( inPath ),
+ RTL_TEXTENCODING_UTF8 ).getStr(),
+ &aUri );
+ theLock->uri = aUri;
+
+ // Set the lock depth
+ switch( rLock.Depth )
+ {
+ case ucb::LockDepth_ZERO:
+ theLock->depth = NE_DEPTH_ZERO;
+ break;
+ case ucb::LockDepth_ONE:
+ theLock->depth = NE_DEPTH_ONE;
+ break;
+ case ucb::LockDepth_INFINITY:
+ theLock->depth = NE_DEPTH_INFINITE;
+ break;
+ default:
+ throw DAVException( DAVException::DAV_INVALID_ARG );
+ }
+ // Set the lock scope
+ switch ( rLock.Scope )
+ {
+ case ucb::LockScope_EXCLUSIVE:
+ theLock->scope = ne_lockscope_exclusive;
+ break;
+ case ucb::LockScope_SHARED:
+ theLock->scope = ne_lockscope_shared;
+ break;
+ default:
+ throw DAVException( DAVException::DAV_INVALID_ARG );
+ }
+
+ // Set the lock timeout
+ theLock->timeout = (long)rLock.Timeout;
+
+ // Set the lock owner
+ rtl::OUString aValue;
+ rLock.Owner >>= aValue;
+ theLock->owner =
+ ne_strdup( rtl::OUStringToOString( aValue,
+ RTL_TEXTENCODING_UTF8 ).getStr() );
TimeValue startCall;
osl_getSystemTime( &startCall );
- aReqProc->processLock(inPath, rLock, outLock, status);
- //HandleError will handle the error and throw an exception, if needed
- HandleError( aReqProc );
+ int theRetVal = ne_lock( m_pHttpSession, theLock );
- if(outLock.Name.compareToAscii(RTL_CONSTASCII_STRINGPARAM( "DAV:lockdiscovery" )) == 0 )
+ if ( theRetVal == NE_OK )
{
- //got a lock, use only the first returned
- uno::Sequence< ucb::Lock > aLocks;
- outLock.Value >>= aLocks;
- ucb::Lock aLock = aLocks[0];
+ m_aSerfLockStore.addLock( theLock,
+ this,
+ lastChanceToSendRefreshRequest(
+ startCall, theLock->timeout ) );
+
+ uno::Sequence< rtl::OUString > aTokens( 1 );
+ aTokens[ 0 ] = rtl::OUString::createFromAscii( theLock->token );
+ rLock.LockTokens = aTokens;
- SerfLock* aNewLock = new SerfLock( aLock, aUri, inPath );
- // add the store the new lock
- m_aSerfLockStore.addLock(aNewLock,this,
- lastChanceToSendRefreshRequest(
- startCall, static_cast< sal_Int32 >(aLock.Timeout) ) );
+ OSL_TRACE( "SerfSession::LOCK: created lock for %s. token: %s",
+ rtl::OUStringToOString( makeAbsoluteURL( inPath ),
+ RTL_TEXTENCODING_UTF8 ).getStr(),
+ theLock->token );
+ }
+ else
+ {
+ ne_lock_destroy( theLock );
+
+ OSL_TRACE( "SerfSession::LOCK: obtaining lock for %s failed!",
+ rtl::OUStringToOString( makeAbsoluteURL( inPath ),
+ RTL_TEXTENCODING_UTF8 ).getStr() );
}
+ HandleError( theRetVal, inPath, rEnv );
+ */
}
// -------------------------------------------------------------------
-// LOCK (refresh existing lock from DAVResourceAccess)
+// LOCK (refresh existing lock)
// -------------------------------------------------------------------
sal_Int64 SerfSession::LOCK( const ::rtl::OUString & /*inPath*/,
sal_Int64 nTimeout,
@@ -1250,102 +1172,92 @@ sal_Int64 SerfSession::LOCK( const ::rtl
}
// -------------------------------------------------------------------
-// LOCK (refresh existing lock from SerfLockStore)
+// LOCK (refresh existing lock)
// -------------------------------------------------------------------
-bool SerfSession::LOCK( SerfLock * pLock,
- sal_Int32 & rlastChanceToSendRefreshRequest )
+bool SerfSession::LOCK( SerfLock * /*pLock*/,
+ sal_Int32 & /*rlastChanceToSendRefreshRequest*/ )
{
osl::Guard< osl::Mutex > theGuard( m_aMutex );
- rtl::OUString inPath = pLock->getResourcePath();
-
- boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
- apr_status_t status = APR_SUCCESS;
- //the returned property, a sequence of locks
- //only the first is used
- DAVPropertyValue outLock;
+ return true;
+ /*
+ // refresh existing lock.
TimeValue startCall;
osl_getSystemTime( &startCall );
- // refresh existing lock.
- aReqProc->processLockRefresh( inPath, pLock->getLock(), outLock, status);
-
- // TODO: possible enhancement as the following:
- // - use an interaction handler to alert the user if the lock was not refreshed,
- // offering to try again with a new session, asking the user for credential, if necessary.
- // This may happen if the WebDAV server goes off-line for whatever reason, or the connection is dropped for time-out
- // To implement this behavior, some redesigning of the current session implementation may be needed.
- //
-
- //HandleError will handle the error and throw an exception, if needed
- HandleError( aReqProc );
-
- uno::Sequence< ucb::Lock > aLocks;
- outLock.Value >>= aLocks;
- ucb::Lock aLock = aLocks[0];
-
- //if ok, udate the lastchance refresh time in lock
- rlastChanceToSendRefreshRequest
- = lastChanceToSendRefreshRequest( startCall, static_cast< sal_Int32 >(aLock.Timeout) );
+ if ( ne_lock_refresh( m_pHttpSession, pLock ) == NE_OK )
+ {
+ rlastChanceToSendRefreshRequest
+ = lastChanceToSendRefreshRequest( startCall, pLock->timeout );
- return true;
+ OSL_TRACE( "Lock successfully refreshed." );
+ return true;
+ }
+ else
+ {
+ OSL_TRACE( "Lock not refreshed!" );
+ return false;
+ }
+ */
}
// -------------------------------------------------------------------
-// UNLOCK called from external (DAVResourceAccess)
+// UNLOCK
// -------------------------------------------------------------------
-void SerfSession::UNLOCK( const ::rtl::OUString & inPath,
- const DAVRequestEnvironment & rEnv )
+void SerfSession::UNLOCK( const ::rtl::OUString & /*inPath*/,
+ const DAVRequestEnvironment & /*rEnv*/ )
throw ( DAVException )
{
osl::Guard< osl::Mutex > theGuard( m_aMutex );
- rtl::OUString aUri( composeCurrentUri( inPath ) );
- SerfLock * pLock = m_aSerfLockStore.findByUri( aUri );
- if ( !pLock )
- {
+ /*
+ // get the neon lock from lock store
+ SerfLock * theLock
+ = m_aSerfLockStore.findByUri( makeAbsoluteURL( inPath ) );
+ if ( !theLock )
throw DAVException( DAVException::DAV_NOT_LOCKED );
- }
Init( rEnv );
- boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
- apr_status_t status = APR_SUCCESS;
+ int theRetVal = ne_unlock( m_pHttpSession, theLock );
- ucb::Lock inLock = pLock->getLock();
- //remove lock from lockstore
- // so, if something goes wrong, we don't refresh it anymore
- m_aSerfLockStore.removeLock(pLock);
- delete pLock;
-
- // remove existing lock
- aReqProc->processUnlock( inPath, inLock, status);
+ if ( theRetVal == NE_OK )
+ {
+ m_aSerfLockStore.removeLock( theLock );
+ ne_lock_destroy( theLock );
+ }
+ else
+ {
+ OSL_TRACE( "SerfSession::UNLOCK: unlocking of %s failed.",
+ rtl::OUStringToOString( makeAbsoluteURL( inPath ),
+ RTL_TEXTENCODING_UTF8 ).getStr() );
+ }
- //HandleError will handle the error and throw an exception, if needed
- HandleError( aReqProc );
+ HandleError( theRetVal, inPath, rEnv );
+ */
}
// -------------------------------------------------------------------
-// UNLOCK (called from SerfLockStore)
+// UNLOCK
// -------------------------------------------------------------------
-bool SerfSession::UNLOCK( SerfLock * pLock )
+bool SerfSession::UNLOCK( SerfLock * /*pLock*/ )
{
osl::Guard< osl::Mutex > theGuard( m_aMutex );
- rtl::OUString inPath = pLock->getResourcePath();
-
- boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
- apr_status_t status = APR_SUCCESS;
-
- rtl::OUString aToken;
- aToken = pLock->getLock().LockTokens[0];
-
- aReqProc->processUnlock( inPath, pLock->getLock(), status);
-
- //HandleError will handle the error and throw an exception, if needed
- HandleError( aReqProc );
return true;
+ /*
+ if ( ne_unlock( m_pHttpSession, pLock ) == NE_OK )
+ {
+ OSL_TRACE( "UNLOCK succeeded." );
+ return true;
+ }
+ else
+ {
+ OSL_TRACE( "UNLOCK failed!" );
+ return false;
+ }
+ */
}
// -------------------------------------------------------------------
@@ -1403,10 +1315,6 @@ bool containsLocktoken( const uno::Seque
*/
// -------------------------------------------------------------------
-// This method doesn't seem to be used.
-// In any case the default behavior is to ask a lock whith a life of 3 minutes
-// it will then be refreshed automatically (see SerfLockStore class)
-// In case of AOO crash the lock will expire by itself
bool SerfSession::removeExpiredLocktoken( const rtl::OUString & /*inURL*/,
const DAVRequestEnvironment & /*rEnv*/ )
{
@@ -1704,3 +1612,37 @@ SerfSession::isDomainMatch( rtl::OUStrin
}
return sal_False;
}
+
+/*
+// ---------------------------------------------------------------------
+rtl::OUString SerfSession::makeAbsoluteURL( rtl::OUString const & rURL ) const
+{
+ try
+ {
+ // Is URL relative or already absolute?
+ if ( rURL[ 0 ] != sal_Unicode( '/' ) )
+ {
+ // absolute.
+ return rtl::OUString( rURL );
+ }
+ else
+ {
+ ne_uri aUri;
+ memset( &aUri, 0, sizeof( aUri ) );
+
+ ne_fill_server_uri( m_pHttpSession, &aUri );
+ aUri.path
+ = ne_strdup( rtl::OUStringToOString(
+ rURL, RTL_TEXTENCODING_UTF8 ).getStr() );
+ SerfUri aSerfUri( &aUri );
+ ne_uri_free( &aUri );
+ return aSerfUri.GetURI();
+ }
+ }
+ catch ( DAVException const & )
+ {
+ }
+ // error.
+ return rtl::OUString();
+}
+*/
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.hxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.hxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfSession.hxx Fri Sep 25 07:59:46 2015
@@ -27,10 +27,9 @@
#include <vector>
#include <boost/shared_ptr.hpp>
#include <osl/mutex.hxx>
-#include "DAVResource.hxx"
#include "DAVSession.hxx"
#include "SerfTypes.hxx"
-#include "SerfLockStore.hxx"
+//#include "SerfLockStore.hxx"
#include "SerfUri.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
@@ -55,9 +54,6 @@ private:
rtl::OUString m_aProxyName;
sal_Int32 m_nProxyPort;
- // The server, according RFC7231
- // http://tools.ietf.org/html/rfc7231#section-7.4.2
- rtl::OUString m_aServerHeaderField;
SerfConnection* m_pSerfConnection;
serf_context_t* m_pSerfContext;
@@ -70,14 +66,12 @@ private:
DAVRequestEnvironment m_aEnv;
- static SerfLockStore m_aSerfLockStore;
+// static SerfLockStore m_aSerfLockStore;
char* getHostinfo();
bool isSSLNeeded();
- SerfRequestProcessor* createReqProc( const rtl::OUString & inPath );
-
- rtl::OUString composeCurrentUri( const rtl::OUString & inPath );
+ SerfRequestProcessor* createReqProc( const rtl::OUString & inPath );
protected:
virtual ~SerfSession();
@@ -264,10 +258,6 @@ public:
sal_Bool isDomainMatch( rtl::OUString certHostName );
- const rtl::OUString & getServerHeaderField() { return m_aServerHeaderField; };
-
- void setServerHeaderField( rtl::OUString aServerHeaderField ) { m_aServerHeaderField = aServerHeaderField; };
-
private:
friend class SerfLockStore;
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfTypes.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfTypes.hxx?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfTypes.hxx (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/SerfTypes.hxx Fri Sep 25 07:59:46 2015
@@ -25,42 +25,13 @@
#define INCLUDED_SERFTYPES_HXX
#include <serf.h>
-#include <com/sun/star/ucb/Lock.hpp>
-#include "DAVTypes.hxx"
-#include "DAVRequestEnvironment.hxx"
-
-using namespace com::sun::star;
-
-namespace http_dav_ucp
-{
typedef serf_connection_t SerfConnection;
-class SerfLock
-{
-private:
- ucb::Lock mLock;
- const rtl::OUString mResourceUri;
- const rtl::OUString mPathStr;
- // const DAVRequestEnvironment& mrRequestEnvironment;
-public:
-
- SerfLock(const ucb::Lock inLock, rtl::OUString inUri, rtl::OUString inPath)
- : mLock( inLock )
- , mResourceUri( inUri )
- , mPathStr( inPath )
- // , mrRequestEnvironment( rEnv )
- {};
-
- void setLock(const ucb::Lock inLock) { mLock = inLock; };
- const ucb::Lock getLock() { return mLock; };
- const rtl::OUString getResourceUri() { return mResourceUri; };
- const rtl::OUString getResourcePath() { return mPathStr; };
- // const DAVRequestEnvironment& getRequestEnvironment() { return mrRequestEnvironment; };
-};
+// TODO, figure out type of <SerfLock>
+typedef int SerfLock;
// TODO, check if we need it later on
typedef struct { const char *nspace, *name; } SerfPropName;
-};
#endif // INCLUDED_SERFTYPES_HXX
Modified: openoffice/branches/AOO410/main/ucb/source/ucp/webdav/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO410/main/ucb/source/ucp/webdav/makefile.mk?rev=1705247&r1=1705246&r2=1705247&view=diff
==============================================================================
--- openoffice/branches/AOO410/main/ucb/source/ucp/webdav/makefile.mk (original)
+++ openoffice/branches/AOO410/main/ucb/source/ucp/webdav/makefile.mk Fri Sep 25 07:59:46 2015
@@ -131,10 +131,6 @@ SLOFILES=\
$(SLO)$/SerfMkColReqProcImpl.obj \
$(SLO)$/SerfCopyReqProcImpl.obj \
$(SLO)$/SerfMoveReqProcImpl.obj \
- $(SLO)$/SerfLockReqProcImpl.obj \
- $(SLO)$/SerfLockRefreshProcImpl.obj \
- $(SLO)$/SerfUnlockProcImpl.obj \
- $(SLO)$/SerfLockStore.obj \
$(SLO)$/SerfSession.obj \
$(SLO)$/SerfCallbacks.obj \
$(SLO)$/SerfInputStream.obj \
@@ -152,7 +148,6 @@ SHL1IMPLIB=i$(TARGET)
SHL1VERSIONMAP=$(SOLARENV)/src/component.map
SHL1STDLIBS+=\
- $(TOOLSLIB) \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(SALLIB) \