summaryrefslogtreecommitdiff
path: root/ucb
diff options
context:
space:
mode:
authorJulian Kalinowski <julian.kalinowski@dataport.de>2020-06-10 12:54:06 +0200
committerMike Kaganski <mike.kaganski@collabora.com>2020-06-10 20:56:08 +0200
commit18c6cc0e7a4515b5bd993c425a7e0694bffe1207 (patch)
tree8f7ecfa71ea74aacf44083cc5a1ee4cd2edcd20b /ucb
parent9a5f2961b085ce2f23ecdf0a03d1114bacac8e2c (diff)
Fix webdav lock refresh returning 0 instead of true when successful
With commit 58b84caca87c893ac04f0b1399aeadc839a2f075, the NeonSession.LOCK returns "theRetVal" from ne_lock_refresh when successful. But when there is no error, theRetVal will be NE_OK, which is 0, so the method returns false instead of true. This results in lock refresh being stopped after the first refresh, so WebDAV servers will unlock the file after the lock timeouts. Users will see error messages regarding lock timeouts and lost updates are possible. Fix this by adding a return statement when theRetVal == NE_OK. Change-Id: Ie43131fca96e1cfbe932444906b742958a719b26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96023 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'ucb')
-rw-r--r--ucb/source/ucp/webdav-neon/NeonSession.cxx4
1 files changed, 2 insertions, 2 deletions
diff --git a/ucb/source/ucp/webdav-neon/NeonSession.cxx b/ucb/source/ucp/webdav-neon/NeonSession.cxx
index fca9b15609e0..3a19e774b17a 100644
--- a/ucb/source/ucp/webdav-neon/NeonSession.cxx
+++ b/ucb/source/ucp/webdav-neon/NeonSession.cxx
@@ -1636,6 +1636,8 @@ bool NeonSession::LOCK( NeonLock * pLock,
= lastChanceToSendRefreshRequest( startCall, pLock->timeout );
SAL_INFO( "ucb.ucp.webdav", "LOCK (refresh) - Lock successfully refreshed." );
+ pLock->timeout = timeout;
+ return true;
}
else
{
@@ -1652,8 +1654,6 @@ bool NeonSession::LOCK( NeonLock * pLock,
}
return false;
}
- pLock->timeout = timeout;
- return theRetVal;
}
void NeonSession::UNLOCK( const OUString & inPath,