ooo-build r11687 - in trunk: . patches/src680



Author: jholesovsky
Date: Fri Feb 22 18:42:01 2008
New Revision: 11687
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11687&view=rev

Log:
2008-02-22  Jan Holesovsky  <kendy suse cz>

        * patches/src680/webdav-locking-lockstore.diff,
          patches/src680/apply: ne_lockstore_add() must be called _after_
          ne_lock(), otherwise we get 'Could not LOCK <file> due to
          a failed precondition (e.g. other locks).  [400, #0]' and 'Invalid
          If-header: unclosed "(".' apache errors (rightly!).


Added:
   trunk/patches/src680/webdav-locking-lockstore.diff
Modified:
   trunk/ChangeLog
   trunk/patches/src680/apply

Modified: trunk/patches/src680/apply
==============================================================================
--- trunk/patches/src680/apply	(original)
+++ trunk/patches/src680/apply	Fri Feb 22 18:42:01 2008
@@ -594,6 +594,9 @@
 # The http(s)/dav(s)/webdav(s) protocols can contain even username/passwd
 webdav-locking-can-have-username.diff, n#363363, i#29152, jholesov
 
+# ne_lockstore_add() must be called _after_ ne_lock()
+webdav-locking-lockstore.diff, i#29152, jholesov
+
 [ GnomeVFS < ooh680-m4 ]
 # WebDAV locking
 # It is in this section because it needs part of the gvfs-related patches

Added: trunk/patches/src680/webdav-locking-lockstore.diff
==============================================================================
--- (empty file)
+++ trunk/patches/src680/webdav-locking-lockstore.diff	Fri Feb 22 18:42:01 2008
@@ -0,0 +1,46 @@
+diff --git ucb/source/ucp/webdav/NeonSession.cxx ucb/source/ucp/webdav/NeonSession.cxx
+index 6ca255b..3f99123 100644
+--- ucb/source/ucp/webdav/NeonSession.cxx
++++ ucb/source/ucp/webdav/NeonSession.cxx
+@@ -1607,8 +1607,6 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+         // Note: Neon ignores the timeout
+         //theLock->timeout = rLock.timeout;
+         theLock->timeout = -1;
+-
+-        ne_lockstore_add( s_aNeonLockStore, theLock );
+     }
+ 
+     if ( bLockit )
+@@ -1617,6 +1615,8 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ 
+         if ( nRet == NE_OK )
+         {
++            ne_lockstore_add( s_aNeonLockStore, theLock );
++
+             uno::Sequence< rtl::OUString > aTokens( 1 );
+             aTokens[0] = rtl::OUString::createFromAscii( theLock->token );
+             rLock.LockTokens = aTokens;
+@@ -1633,13 +1633,10 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+                     rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "a locking error occured" ) ),
+                     uno::Reference< ucb::XCommandProcessor >() );
+         }
+-        else
+-        {
+ #if OSL_DEBUG_LEVEL > 0
++        else
+             fprintf( stderr, "WebDAV: failed to lock the file, status code is: %d\n", getStatusCode( m_pHttpSession ) );
+ #endif
+-            ne_lockstore_remove( s_aNeonLockStore, theLock );
+-        }
+     }
+     else
+     {
+@@ -1654,6 +1651,8 @@ void NeonSession::Lockit( ucb::Lock & rLock, bool bLockit )
+ #endif
+ 
+             ne_unlock( m_pHttpSession, theLock );
++            ne_lockstore_remove( s_aNeonLockStore, theLock );
++            // FIXME even ne_lock_destroy( theLock )?
+         }
+     }
+ }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]