diff options
-rw-r--r-- | ucb/source/ucp/webdav/webdavcontent.cxx | 16 | ||||
-rw-r--r-- | ucb/source/ucp/webdav/webdavcontent.hxx | 3 |
2 files changed, 12 insertions, 7 deletions
diff --git a/ucb/source/ucp/webdav/webdavcontent.cxx b/ucb/source/ucp/webdav/webdavcontent.cxx index b783e166a52a..dbc13b74b9a2 100644 --- a/ucb/source/ucp/webdav/webdavcontent.cxx +++ b/ucb/source/ucp/webdav/webdavcontent.cxx @@ -1371,14 +1371,12 @@ uno::Reference< sdbc::XRow > Content::getPropertyValues( if ( !m_bTransient && !bHasAll ) { - // Obtain values from server... // First, identify whether resource is DAV or not - const ResourceType & rType = getResourceType( xEnv, xResAccess ); - bool bNetworkAccessAllowed = true; + const ResourceType & rType = getResourceType( xEnv, xResAccess, &bNetworkAccessAllowed ); if ( DAV == rType ) { @@ -3321,15 +3319,15 @@ Content::getBaseURI( const boost::scoped_ptr< DAVResourceAccess > & rResAccess ) const Content::ResourceType & Content::getResourceType( const uno::Reference< ucb::XCommandEnvironment >& xEnv, - const boost::scoped_ptr< DAVResourceAccess > & rResAccess ) + const boost::scoped_ptr< DAVResourceAccess > & rResAccess, + bool * networkAccessAllowed ) throw ( uno::Exception ) { if ( m_eResourceType == UNKNOWN ) { osl::Guard< osl::Mutex > aGuard( m_aMutex ); - ResourceType eResourceType; - eResourceType = m_eResourceType; + ResourceType eResourceType = UNKNOWN; try { @@ -3372,6 +3370,12 @@ const Content::ResourceType & Content::getResourceType( // resource is NON_DAV eResourceType = NON_DAV; } + else if (networkAccessAllowed != 0) + { + *networkAccessAllowed = *networkAccessAllowed + && shouldAccessNetworkAfterException(e); + } + // cancel command execution is case that no user authentication data has been provided. if ( e.getError() == DAVException::DAV_HTTP_NOAUTH ) { diff --git a/ucb/source/ucp/webdav/webdavcontent.hxx b/ucb/source/ucp/webdav/webdavcontent.hxx index f9daf3d78ea7..04a115bfdea3 100644 --- a/ucb/source/ucp/webdav/webdavcontent.hxx +++ b/ucb/source/ucp/webdav/webdavcontent.hxx @@ -132,7 +132,8 @@ private: const ResourceType & getResourceType( const ::com::sun::star::uno::Reference< ::com::sun::star::ucb::XCommandEnvironment >& xEnv, - const boost::scoped_ptr< DAVResourceAccess > & rResAccess ) + const boost::scoped_ptr< DAVResourceAccess > & rResAccess, + bool * networkAccessAllowed = 0 ) throw ( ::com::sun::star::uno::Exception ); // Command "open" |