diff options
-rw-r--r-- | ucb/source/ucp/webdav-neon/NeonSession.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ucb/source/ucp/webdav-neon/NeonSession.cxx b/ucb/source/ucp/webdav-neon/NeonSession.cxx index 7ee9c56d4807..cd8b31f9d359 100644 --- a/ucb/source/ucp/webdav-neon/NeonSession.cxx +++ b/ucb/source/ucp/webdav-neon/NeonSession.cxx @@ -1659,7 +1659,8 @@ bool NeonSession::LOCK( NeonLock * pLock, TimeValue startCall; osl_getSystemTime( &startCall ); - if ( ne_lock_refresh( m_pHttpSession, pLock ) == NE_OK ) + const int theRetVal = ne_lock_refresh(m_pHttpSession, pLock); + if (theRetVal == NE_OK) { rlastChanceToSendRefreshRequest = lastChanceToSendRefreshRequest( startCall, pLock->timeout ); @@ -1674,6 +1675,11 @@ bool NeonSession::LOCK( NeonLock * pLock, SAL_WARN( "ucb.ucp.webdav", "LOCK (refresh) - not refreshed! Relative URL: <" << p << "> token: <" << pLock->token << ">" ); ne_free( p ); #endif + if (theRetVal == NE_AUTH) + { + // tdf#126279: see handling of NE_AUTH in HandleError + m_bNeedNewSession = true; + } return false; } } @@ -1720,7 +1726,8 @@ bool NeonSession::UNLOCK( NeonLock * pLock ) } #endif - if ( ne_unlock( m_pHttpSession, pLock ) == NE_OK ) + const int theRetVal = ne_unlock(m_pHttpSession, pLock); + if (theRetVal == NE_OK) { #if defined SAL_LOG_INFO { @@ -1740,6 +1747,11 @@ bool NeonSession::UNLOCK( NeonLock * pLock ) ne_free( p ); } #endif + if (theRetVal == NE_AUTH) + { + // tdf#126279: see handling of NE_AUTH in HandleError + m_bNeedNewSession = true; + } return false; } } |