You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by or...@apache.org on 2012/03/12 17:06:44 UTC

svn commit: r1299727 - in /incubator/ooo/trunk/main: ucb/source/ucp/webdav/ uui/source/

Author: orw
Date: Mon Mar 12 16:06:42 2012
New Revision: 1299727

URL: http://svn.apache.org/viewvc?rev=1299727&view=rev
Log:
119036 - adapt serf integration
       -- use transfer-encoding 'chunked' on HTTPS
       -- switch transfer-encoding between 'chunked' and none on 413 HTTP status code
       -- refactoring
       -- improve user experience of certification dialog - only shown once

Modified:
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/DAVResourceAccess.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.cxx
    incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.hxx
    incubator/ooo/trunk/main/uui/source/iahndl-ssl.cxx

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/DAVResourceAccess.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/DAVResourceAccess.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/DAVResourceAccess.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/DAVResourceAccess.cxx Mon Mar 12 16:06:42 2012
@@ -1158,7 +1158,8 @@ sal_Bool DAVResourceAccess::handleExcept
     // if we have a bad connection try again. Up to three times.
     case DAVException::DAV_HTTP_ERROR:
         // retry up to three times, if not a client-side error.
-        if ( ( e.getStatus() < 400 || e.getStatus() >= 500 ) &&
+        if ( ( e.getStatus() < 400 || e.getStatus() >= 500 ||
+               e.getStatus() == 413 ) &&
              errorCount < 3 )
         {
             return sal_True;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -71,38 +71,15 @@ serf_bucket_t * SerfCopyReqProcImpl::cre
     return req_bkt;
 }
 
-
-bool SerfCopyReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                       serf_bucket_t * inSerfResponseBucket,
-                                                       apr_pool_t * /*inAprPool*/,
-                                                       apr_status_t & outStatus )
+void SerfCopyReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                      apr_size_t /*len*/ )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
-    }
+    // nothing to do;
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfCopyReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfCopyReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -39,11 +39,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 private:
     const char* mDestPathStr;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -56,38 +56,15 @@ serf_bucket_t * SerfDeleteReqProcImpl::c
     return req_bkt;
 }
 
-
-bool SerfDeleteReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                       serf_bucket_t * inSerfResponseBucket,
-                                                       apr_pool_t * /*inAprPool*/,
-                                                       apr_status_t & outStatus )
+void SerfDeleteReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                        apr_size_t /*len*/ )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
-    }
+    // nothing to do;
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfDeleteReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -37,11 +37,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 };
 

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -95,6 +95,20 @@ serf_bucket_t * SerfGetReqProcImpl::crea
     return req_bkt;
 }
 
+void SerfGetReqProcImpl::processChunkOfResponseData( const char* data, 
+                                                     apr_size_t len )
+{
+    if ( xInputStream.is() )
+    {
+        xInputStream->AddToStream( data, len );
+    }
+    else if ( xOutputStream.is() )
+    {
+        const uno::Sequence< sal_Int8 > aDataSeq( (sal_Int8 *)data, len );
+        xOutputStream->writeBytes( aDataSeq );
+    }
+}
+
 namespace
 {
     apr_status_t Serf_ProcessResponseHeader( void* inUserData,
@@ -109,62 +123,19 @@ namespace
     }
 } // end of anonymous namespace
 
-bool SerfGetReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                    serf_bucket_t * inSerfResponseBucket,
-                                                    apr_pool_t * /*inAprPool*/,
-                                                    apr_status_t & outStatus )
+void SerfGetReqProcImpl::handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        if ( len > 0 )
-        {
-            if ( xInputStream.is() )
-            {
-                xInputStream->AddToStream( data, len );
-            }
-            else if ( xOutputStream.is() )
-            {
-                const uno::Sequence< sal_Int8 > aDataSeq( (sal_Int8 *)data, len );
-                xOutputStream->writeBytes( aDataSeq );
-            }
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            // read response header, if requested
-            if ( mpHeaderNames != 0 && mpResource != 0 )
-            {
-                serf_bucket_t* SerfHeaderBucket = serf_bucket_response_get_headers( inSerfResponseBucket );
-                if ( SerfHeaderBucket != 0 )
-                {
-                    serf_bucket_headers_do( SerfHeaderBucket, 
-                                            Serf_ProcessResponseHeader,
-                                            this );
-                }
-            }
-
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
+    // read response header, if requested
+    if ( mpHeaderNames != 0 && mpResource != 0 )
+    {
+        serf_bucket_t* SerfHeaderBucket = serf_bucket_response_get_headers( inSerfResponseBucket );
+        if ( SerfHeaderBucket != 0 )
         {
-            return false;
+            serf_bucket_headers_do( SerfHeaderBucket, 
+                                    Serf_ProcessResponseHeader,
+                                    this );
         }
     }
-
-    /* NOTREACHED */
-    return true;
 }
 
 void SerfGetReqProcImpl::processSingleResponseHeader( const char* inHeaderName,

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfGetReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -58,14 +58,16 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
-    virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
-
     void processSingleResponseHeader( const char* inHeaderName,
                                       const char* inHeaderValue );
+
+protected:
+    virtual
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
+
 private:
     com::sun::star::uno::Reference< SerfInputStream > xInputStream;
     com::sun::star::uno::Reference< com::sun::star::io::XOutputStream > xOutputStream;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -60,6 +60,12 @@ serf_bucket_t * SerfHeadReqProcImpl::cre
     return req_bkt;
 }
 
+void SerfHeadReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                      apr_size_t /*len*/ )
+{
+    // nothing to do
+}
+
 namespace
 {
     apr_status_t Serf_ProcessResponseHeader( void* inUserData,
@@ -74,51 +80,19 @@ namespace
     }
 } // end of anonymous namespace
 
-bool SerfHeadReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                     serf_bucket_t * inSerfResponseBucket,
-                                                     apr_pool_t * /*inAprPool*/,
-                                                     apr_status_t & outStatus )
+void SerfHeadReqProcImpl::handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket )
 {
-    const char* data;
-    apr_size_t len;
-
-    serf_bucket_t* SerfHeaderBucket = serf_bucket_response_get_headers( inSerfResponseBucket );
-    
-    while ( SerfHeaderBucket )
+    // read response header, if requested
+    if ( mpHeaderNames != 0 && mpResource != 0 )
     {
-        outStatus = serf_bucket_read(SerfHeaderBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
+        serf_bucket_t* SerfHeaderBucket = serf_bucket_response_get_headers( inSerfResponseBucket );
+        if ( SerfHeaderBucket != 0 )
         {
-            // read response header, if requested
-            if ( mpHeaderNames != 0 && mpResource != 0 )
-            {
-                serf_bucket_t* SerfHeaderBucket = serf_bucket_response_get_headers( inSerfResponseBucket );
-                if ( SerfHeaderBucket != 0 )
-                {
-                    serf_bucket_headers_do( SerfHeaderBucket, 
-                                            Serf_ProcessResponseHeader,
-                                            this );
-                }
-            }
-
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
+            serf_bucket_headers_do( SerfHeaderBucket, 
+                                    Serf_ProcessResponseHeader,
+                                    this );
         }
     }
-
-    return true;
 }
 
 void SerfHeadReqProcImpl::processSingleResponseHeader( const char* inHeaderName,

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfHeadReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -46,14 +46,16 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
-    virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
-
     void processSingleResponseHeader( const char* inHeaderName,
                                       const char* inHeaderValue );
+
+protected:
+    virtual
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
+
 private:
     const std::vector< ::rtl::OUString > * mpHeaderNames;
     DAVResource* mpResource;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -56,38 +56,15 @@ serf_bucket_t * SerfMkColReqProcImpl::cr
     return req_bkt;
 }
 
-
-bool SerfMkColReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                       serf_bucket_t * inSerfResponseBucket,
-                                                       apr_pool_t * /*inAprPool*/,
-                                                       apr_status_t & outStatus )
+void SerfMkColReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                       apr_size_t /*len*/ )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
-    }
+    // nothing to do;
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfMkColReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMkColReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -37,12 +37,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
 
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 };
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -71,38 +71,15 @@ serf_bucket_t * SerfMoveReqProcImpl::cre
     return req_bkt;
 }
 
-
-bool SerfMoveReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                       serf_bucket_t * inSerfResponseBucket,
-                                                       apr_pool_t * /*inAprPool*/,
-                                                       apr_status_t & outStatus )
+void SerfMoveReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                      apr_size_t /*len*/ )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
-    }
+    // nothing to do;
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfMoveReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfMoveReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -39,11 +39,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 private:
     const char* mDestPathStr;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -76,6 +76,10 @@ serf_bucket_t * SerfPostReqProcImpl::cre
     if ( mpPostData != 0 && mnPostDataLen > 0 )
     {
         body_bkt = SERF_BUCKET_SIMPLE_STRING_LEN( mpPostData, mnPostDataLen, pSerfBucketAlloc );
+        if ( useChunkedEncoding() )
+        {
+            body_bkt = serf_bucket_chunk_create( body_bkt, pSerfBucketAlloc );
+        }
     }
 
     // create serf request
@@ -94,6 +98,10 @@ serf_bucket_t * SerfPostReqProcImpl::cre
     // request specific header fields
     if ( body_bkt != 0 )
     {
+        if ( useChunkedEncoding() )
+        {
+            serf_bucket_headers_setn( hdrs_bkt, "Transfer-Encoding", "chunked");
+        }
         serf_bucket_headers_setn( hdrs_bkt, "Content-Length", 
                                   rtl::OUStringToOString( rtl::OUString::valueOf( (sal_Int32)mnPostDataLen ), RTL_TEXTENCODING_UTF8 ) );
     }
@@ -109,51 +117,23 @@ serf_bucket_t * SerfPostReqProcImpl::cre
     return req_bkt;
 }
 
-
-bool SerfPostReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                    serf_bucket_t * inSerfResponseBucket,
-                                                    apr_pool_t * /*inAprPool*/,
-                                                    apr_status_t & outStatus )
+void SerfPostReqProcImpl::processChunkOfResponseData( const char* data, 
+                                                      apr_size_t len )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        if ( len > 0 )
-        {
-            if ( xInputStream.is() )
-            {
-                xInputStream->AddToStream( data, len );
-            }
-            else if ( xOutputStream.is() )
-            {
-                const uno::Sequence< sal_Int8 > aDataSeq( (sal_Int8 *)data, len );
-                xOutputStream->writeBytes( aDataSeq );
-            }
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
+    if ( xInputStream.is() )
+    {
+        xInputStream->AddToStream( data, len );
+    }
+    else if ( xOutputStream.is() )
+    {
+        const uno::Sequence< sal_Int8 > aDataSeq( (sal_Int8 *)data, len );
+        xOutputStream->writeBytes( aDataSeq );
     }
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfPostReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPostReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -52,11 +52,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 private:
     const char* mpPostData;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -136,6 +136,10 @@ serf_bucket_t * SerfPropFindReqProcImpl:
                     rtl::OUString::createFromAscii( PROPFIND_TRAILER );
         body_bkt = SERF_BUCKET_SIMPLE_STRING( rtl::OUStringToOString( aBodyText, RTL_TEXTENCODING_UTF8 ), 
                                               pSerfBucketAlloc );
+        if ( useChunkedEncoding() )
+        {
+            body_bkt = serf_bucket_chunk_create( body_bkt, pSerfBucketAlloc );
+        }
     }
 
     // create serf request
@@ -156,6 +160,10 @@ serf_bucket_t * SerfPropFindReqProcImpl:
     serf_bucket_headers_setn( hdrs_bkt, "Depth", mDepthStr );
     if ( body_bkt != 0 && aBodyText.getLength() > 0 )
     {
+        if ( useChunkedEncoding() )
+        {
+            serf_bucket_headers_setn( hdrs_bkt, "Transfer-Encoding", "chunked");
+        }
         serf_bucket_headers_setn( hdrs_bkt, "Content-Type", "application/xml" );
         serf_bucket_headers_setn( hdrs_bkt, "Content-Length", 
                                   rtl::OUStringToOString( rtl::OUString::valueOf( aBodyText.getLength() ), RTL_TEXTENCODING_UTF8 ) );
@@ -164,54 +172,27 @@ serf_bucket_t * SerfPropFindReqProcImpl:
     return req_bkt;
 }
 
-
-bool SerfPropFindReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                         serf_bucket_t * inSerfResponseBucket,
-                                                         apr_pool_t * /*inAprPool*/,
-                                                         apr_status_t & outStatus )
+void SerfPropFindReqProcImpl::processChunkOfResponseData( const char* data, 
+                                                          apr_size_t len )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 2048, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        if ( len > 0 )
-        {
-            xInputStream->AddToStream( data, len );
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            if ( mbOnlyPropertyNames )
-            {
-                const std::vector< DAVResourceInfo > rResInfo( parseWebDAVPropNameResponse( xInputStream.get() ) );
-                *mpResInfo = rResInfo;
-            }
-            else
-            {
-                const std::vector< DAVResource > rResources( parseWebDAVPropFindResponse( xInputStream.get() ) );
-                *mpResources = rResources;
-            }
-
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
+    if ( xInputStream.is() )
+    {
+        xInputStream->AddToStream( data, len );
     }
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfPropFindReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    if ( mbOnlyPropertyNames )
+    {
+        const std::vector< DAVResourceInfo > rResInfo( parseWebDAVPropNameResponse( xInputStream.get() ) );
+        *mpResInfo = rResInfo;
+    }
+    else
+    {
+        const std::vector< DAVResource > rResources( parseWebDAVPropFindResponse( xInputStream.get() ) );
+        *mpResources = rResources;
+    }
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropFindReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -51,11 +51,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 private:
     void init( const Depth inDepth );

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -134,6 +134,10 @@ serf_bucket_t * SerfPropPatchReqProcImpl
 
             body_bkt = SERF_BUCKET_SIMPLE_STRING( rtl::OUStringToOString( aBodyText, RTL_TEXTENCODING_UTF8 ), 
                                                   pSerfBucketAlloc );
+            if ( useChunkedEncoding() )
+            {
+                body_bkt = serf_bucket_chunk_create( body_bkt, pSerfBucketAlloc );
+            }
         }
     }
 
@@ -153,6 +157,10 @@ serf_bucket_t * SerfPropPatchReqProcImpl
     // request specific header fields
     if ( body_bkt != 0 && aBodyText.getLength() > 0 )
     {
+        if ( useChunkedEncoding() )
+        {
+            serf_bucket_headers_setn( hdrs_bkt, "Transfer-Encoding", "chunked");
+        }
         serf_bucket_headers_setn( hdrs_bkt, "Content-Type", "application/xml" );
         serf_bucket_headers_setn( hdrs_bkt, "Content-Length", 
                                   rtl::OUStringToOString( rtl::OUString::valueOf( aBodyText.getLength() ), RTL_TEXTENCODING_UTF8 ) );
@@ -161,38 +169,15 @@ serf_bucket_t * SerfPropPatchReqProcImpl
     return req_bkt;
 }
 
-
-bool SerfPropPatchReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                         serf_bucket_t * inSerfResponseBucket,
-                                                         apr_pool_t * /*inAprPool*/,
-                                                         apr_status_t & outStatus )
+void SerfPropPatchReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                           apr_size_t /*len*/ )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 2048, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
-    }
+    // nothing to do;
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfPropPatchReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPropPatchReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -41,11 +41,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 private:
     const std::vector< ProppatchValue > * mpProperties;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx Mon Mar 12 16:06:42 2012
@@ -53,6 +53,10 @@ serf_bucket_t * SerfPutReqProcImpl::crea
     if ( mpData != 0 && mnDataLen > 0 )
     {
         body_bkt = SERF_BUCKET_SIMPLE_STRING_LEN( mpData, mnDataLen, pSerfBucketAlloc );
+        if ( useChunkedEncoding() )
+        {
+            body_bkt = serf_bucket_chunk_create( body_bkt, pSerfBucketAlloc );
+        }
     }
 
     // create serf request
@@ -71,6 +75,10 @@ serf_bucket_t * SerfPutReqProcImpl::crea
     // request specific header fields
     if ( body_bkt != 0 )
     {
+        if ( useChunkedEncoding() )
+        {
+            serf_bucket_headers_setn( hdrs_bkt, "Transfer-Encoding", "chunked");
+        }
         serf_bucket_headers_setn( hdrs_bkt, "Content-Length", 
                                   rtl::OUStringToOString( rtl::OUString::valueOf( (sal_Int32)mnDataLen ), RTL_TEXTENCODING_UTF8 ) );
     }
@@ -79,38 +87,15 @@ serf_bucket_t * SerfPutReqProcImpl::crea
     return req_bkt;
 }
 
-
-bool SerfPutReqProcImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
-                                                    serf_bucket_t * inSerfResponseBucket,
-                                                    apr_pool_t * /*inAprPool*/,
-                                                    apr_status_t & outStatus )
+void SerfPutReqProcImpl::processChunkOfResponseData( const char* /*data*/, 
+                                                     apr_size_t /*len*/ )
 {
-    const char* data;
-    apr_size_t len;
-
-    while (1) {
-        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
-        if (SERF_BUCKET_READ_ERROR(outStatus))
-        {
-            return true;
-        }
-
-        /* are we done yet? */
-        if (APR_STATUS_IS_EOF(outStatus)) 
-        {
-            outStatus = APR_EOF;
-            return true;
-        }
-
-        /* have we drained the response so far? */
-        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
-        {
-            return false;
-        }
-    }
+    // nothing to do;
+}
 
-    /* NOTREACHED */
-    return true;
+void SerfPutReqProcImpl::handleEndOfResponseData( serf_bucket_t * /*inSerfResponseBucket*/ )
+{
+    // nothing to do;
 }
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfPutReqProcImpl.hxx Mon Mar 12 16:06:42 2012
@@ -40,11 +40,12 @@ public:
     virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest );
 
+protected:
     virtual
-    bool processSerfResponseBucket( serf_request_t * inSerfRequest,
-                                    serf_bucket_t * inSerfResponseBucket,
-                                    apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus );
+    void processChunkOfResponseData( const char* data, apr_size_t len );
+
+    virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket );
 
 private:
     const char* mpData;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.cxx Mon Mar 12 16:06:42 2012
@@ -34,10 +34,14 @@ namespace http_dav_ucp
 {
 
 SerfRequestProcessor::SerfRequestProcessor( SerfSession& rSerfSession,
-                                            const rtl::OUString & inPath )
+                                            const rtl::OUString & inPath,
+                                            const bool bUseChunkedEncoding )
     : mrSerfSession( rSerfSession )
     , mPathStr( 0 )
+    , mbUseChunkedEncoding( bUseChunkedEncoding )
     , mDestPathStr( 0 )
+    , mContentType( 0 )
+    , mReferer( 0 )
     , mpProcImpl( 0 )
     , mbProcessingDone( false )
     , mpDAVException()
@@ -226,7 +230,7 @@ bool SerfRequestProcessor::processPost( 
     mContentType = apr_pstrdup( mrSerfSession.getAprPool(), 
                                 rtl::OUStringToOString( inContentType, RTL_TEXTENCODING_UTF8 ) );
     mReferer = apr_pstrdup( mrSerfSession.getAprPool(), 
-                                rtl::OUStringToOString( inReferer, RTL_TEXTENCODING_UTF8 ) );
+                            rtl::OUStringToOString( inReferer, RTL_TEXTENCODING_UTF8 ) );
     mpProcImpl = createPostReqProcImpl( mPathStr,
                                         inData,
                                         inDataLen,
@@ -290,6 +294,12 @@ apr_status_t SerfRequestProcessor::runPr
 {
     prepareProcessor();
 
+    // activate chunked encoding, if requested
+    if ( mbUseChunkedEncoding )
+    {
+        mpProcImpl->activateChunkedEncoding();
+    }
+
     // create serf request
     serf_connection_request_create( mrSerfSession.getSerfConnection(), 
                                     Serf_SetupRequest,

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessor.hxx Mon Mar 12 16:06:42 2012
@@ -45,7 +45,8 @@ class SerfRequestProcessor
 {
 public:
     SerfRequestProcessor( SerfSession& rSerfSession,
-                          const rtl::OUString & inPath );
+                          const rtl::OUString & inPath,
+                          const bool bUseChunkedEncoding );
     ~SerfRequestProcessor();
 
     // PROPFIND - allprop & named
@@ -156,6 +157,7 @@ public:
 
     SerfSession& mrSerfSession;
     const char* mPathStr;
+    const bool mbUseChunkedEncoding;
     const char* mDestPathStr;
     const char* mContentType;
     const char* mReferer;

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.cxx Mon Mar 12 16:06:42 2012
@@ -26,6 +26,7 @@ namespace http_dav_ucp
 
 SerfRequestProcessorImpl::SerfRequestProcessorImpl( const char* inPath )
     : mPathStr( inPath )
+    , mbUseChunkedEncoding( false )
 {
 }
 
@@ -38,5 +39,55 @@ const char* SerfRequestProcessorImpl::ge
     return mPathStr;
 }
 
+void SerfRequestProcessorImpl::activateChunkedEncoding()
+{
+    mbUseChunkedEncoding = true;
+}
+
+const bool SerfRequestProcessorImpl::useChunkedEncoding() const
+{
+    return mbUseChunkedEncoding;
+}
+
+bool SerfRequestProcessorImpl::processSerfResponseBucket( serf_request_t * /*inSerfRequest*/,
+                                                          serf_bucket_t * inSerfResponseBucket,
+                                                          apr_pool_t * /*inAprPool*/,
+                                                          apr_status_t & outStatus )
+{
+    const char* data;
+    apr_size_t len;
+
+    while (1) {
+        outStatus = serf_bucket_read(inSerfResponseBucket, 8096, &data, &len);
+        if (SERF_BUCKET_READ_ERROR(outStatus))
+        {
+            return true;
+        }
+
+        if ( len > 0 )
+        {
+            processChunkOfResponseData( data, len );
+        }
+
+        /* are we done yet? */
+        if (APR_STATUS_IS_EOF(outStatus)) 
+        {
+            handleEndOfResponseData( inSerfResponseBucket );
+
+            outStatus = APR_EOF;
+            return true;
+        }
+
+        /* have we drained the response so far? */
+        if ( APR_STATUS_IS_EAGAIN( outStatus ) )
+        {
+            return false;
+        }
+    }
+
+    /* NOTREACHED */
+    return true;
+}
+
 } // namespace http_dav_ucp
 

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx Mon Mar 12 16:06:42 2012
@@ -39,18 +39,26 @@ public:
     /*pure*/ virtual
     serf_bucket_t * createSerfRequestBucket( serf_request_t * inSerfRequest ) = 0;
 
-    /*pure*/ virtual
     bool processSerfResponseBucket( serf_request_t * inSerfRequest,
                                     serf_bucket_t * inSerfResponseBucket,
                                     apr_pool_t * inAprPool,
-                                    apr_status_t & outStatus ) = 0;
+                                    apr_status_t & outStatus );
+
+    void activateChunkedEncoding();
 
 protected:
+    /*pure*/ virtual
+    void processChunkOfResponseData( const char* data, apr_size_t len ) = 0;
+
+    /*pure*/ virtual
+    void handleEndOfResponseData( serf_bucket_t * inSerfResponseBucket ) = 0;
+
     const char* getPathStr() const;
+    const bool useChunkedEncoding() const;
 
 private:
     const char* mPathStr;
-
+    bool mbUseChunkedEncoding;
 };
 
 } // namespace http_dav_ucp

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.cxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.cxx Mon Mar 12 16:06:42 2012
@@ -56,8 +56,6 @@ using namespace http_dav_ucp;
 
 // -------------------------------------------------------------------
 // static members!
-bool SerfSession::m_bGlobalsInited = false;
-osl::Mutex SerfSession::m_aGlobalMutex;
 //SerfLockStore SerfSession::m_aSerfLockStore;
 
 // -------------------------------------------------------------------
@@ -76,6 +74,8 @@ SerfSession::SerfSession(
     , m_pSerfConnection( 0 )
     , m_pSerfContext( 0 )
     , m_bIsHeadRequestInProgress( false )
+    , m_bUseChunkedEncoding( false )
+    , m_bNoOfTransferEncodingSwitches( 0 )
     , m_rProxyDecider( rProxyDecider )
     , m_aEnv()
 {
@@ -115,14 +115,6 @@ void SerfSession::Init()
 
     if ( m_pSerfConnection == 0 )
     {
-        osl::Guard< osl::Mutex > theGlobalGuard( m_aGlobalMutex );
-        // <--
-        if ( !m_bGlobalsInited )
-        {
-            // TODO - figure out, if anything has to be done here
-            m_bGlobalsInited = true;
-        }
-
         const ucbhelper::InternetProxyServer & rProxyCfg = getProxySettings();
 
         m_aProxyName = rProxyCfg.aName;
@@ -187,6 +179,8 @@ void SerfSession::Init()
 
 
         serf_config_credentials_callback( m_pSerfContext, Serf_Credentials );
+
+        m_bUseChunkedEncoding = isSSLNeeded();
     }
 }
 
@@ -573,6 +567,13 @@ serf_bucket_t* SerfSession::acceptSerfRe
     return responseBkt;
 }
 
+SerfRequestProcessor* SerfSession::createReqProc( const rtl::OUString & inPath )
+{
+    return new SerfRequestProcessor( *this,
+                                     inPath,
+                                     m_bUseChunkedEncoding );
+}
+
 // -------------------------------------------------------------------
 // PROPFIND - allprop & named
 // -------------------------------------------------------------------
@@ -588,22 +589,20 @@ void SerfSession::PROPFIND( const rtl::O
     Init( rEnv );
 
     apr_status_t status = APR_SUCCESS;
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
-    aReqProc.processPropFind( inDepth,
-                              inPropNames,
-                              ioResources,
-                              status );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
+    aReqProc->processPropFind( inDepth,
+                               inPropNames,
+                               ioResources,
+                               status );
 
     if ( status == APR_SUCCESS &&
-         aReqProc.mpDAVException == 0 &&
+         aReqProc->mpDAVException == 0 &&
          ioResources.empty() )
     {
         m_aEnv = DAVRequestEnvironment();
         throw DAVException( DAVException::DAV_HTTP_ERROR, inPath, (sal_uInt16)APR_EGENERAL );
     }
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -620,21 +619,19 @@ void SerfSession::PROPFIND( const rtl::O
     Init( rEnv );
 
     apr_status_t status = APR_SUCCESS;
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
-    aReqProc.processPropFind( inDepth,
-                              ioResInfo,
-                              status );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
+    aReqProc->processPropFind( inDepth,
+                               ioResInfo,
+                               status );
 
     if ( status == APR_SUCCESS &&
-         aReqProc.mpDAVException == 0 &&
+         aReqProc->mpDAVException == 0 &&
          ioResInfo.empty() )
     {
         m_aEnv = DAVRequestEnvironment();
         throw DAVException( DAVException::DAV_HTTP_ERROR, inPath, (sal_uInt16)APR_EGENERAL );
     }
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -650,13 +647,11 @@ void SerfSession::PROPPATCH( const rtl::
     Init( rEnv );
 
     apr_status_t status = APR_SUCCESS;
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
-    aReqProc.processPropPatch( inValues,
-                               status );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
+    aReqProc->processPropPatch( inValues,
+                                status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -674,18 +669,17 @@ void SerfSession::HEAD( const ::rtl::OUS
 
     m_bIsHeadRequestInProgress = true;
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     ioResource.uri = inPath;
     ioResource.properties.clear();
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processHead( inHeaderNames,
-                          ioResource,
-                          status );
+    aReqProc->processHead( inHeaderNames,
+                           ioResource,
+                           status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
     m_bIsHeadRequestInProgress = false;
+
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -702,13 +696,11 @@ SerfSession::GET( const rtl::OUString & 
 
     uno::Reference< SerfInputStream > xInputStream( new SerfInputStream );
     apr_status_t status = APR_SUCCESS;
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
-    aReqProc.processGet( xInputStream,
-                         status );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
+    aReqProc->processGet( xInputStream,
+                          status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 
     return uno::Reference< io::XInputStream >( xInputStream.get() );
 }
@@ -726,13 +718,11 @@ void SerfSession::GET( const rtl::OUStri
     Init( rEnv );
 
     apr_status_t status = APR_SUCCESS;
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
-    aReqProc.processGet( ioOutputStream,
-                         status );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
+    aReqProc->processGet( ioOutputStream,
+                          status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -749,19 +739,17 @@ SerfSession::GET( const rtl::OUString & 
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     uno::Reference< SerfInputStream > xInputStream( new SerfInputStream );
     ioResource.uri = inPath;
     ioResource.properties.clear();
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processGet( xInputStream,
-                         inHeaderNames,
-                         ioResource,
-                         status );
+    aReqProc->processGet( xInputStream,
+                          inHeaderNames,
+                          ioResource,
+                          status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 
     return uno::Reference< io::XInputStream >( xInputStream.get() );
 }
@@ -781,18 +769,16 @@ void SerfSession::GET( const rtl::OUStri
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     ioResource.uri = inPath;
     ioResource.properties.clear();
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processGet( ioOutputStream,
-                         inHeaderNames,
-                         ioResource,
-                         status );
+    aReqProc->processGet( ioOutputStream,
+                          inHeaderNames,
+                          ioResource,
+                          status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -807,18 +793,16 @@ void SerfSession::PUT( const rtl::OUStri
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     uno::Sequence< sal_Int8 > aDataToSend;
     if ( !getDataFromInputStream( inInputStream, aDataToSend, false ) )
         throw DAVException( DAVException::DAV_INVALID_ARG );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processPut( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
-                         aDataToSend.getLength(),
-                         status );
+    aReqProc->processPut( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
+                          aDataToSend.getLength(),
+                          status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -842,19 +826,17 @@ SerfSession::POST( const rtl::OUString &
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     uno::Reference< SerfInputStream > xInputStream( new SerfInputStream );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processPost( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
-                          aDataToSend.getLength(),
-                          rContentType,
-                          rReferer,
-                          xInputStream,
-                          status );
+    aReqProc->processPost( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
+                           aDataToSend.getLength(),
+                           rContentType,
+                           rReferer,
+                           xInputStream,
+                           status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
     return uno::Reference< io::XInputStream >( xInputStream.get() );
 }
 
@@ -879,18 +861,16 @@ void SerfSession::POST( const rtl::OUStr
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processPost( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
-                          aDataToSend.getLength(),
-                          rContentType,
-                          rReferer,
-                          oOutputStream,
-                          status );
+    aReqProc->processPost( reinterpret_cast< const char * >( aDataToSend.getConstArray() ),
+                           aDataToSend.getLength(),
+                           rContentType,
+                           rReferer,
+                           oOutputStream,
+                           status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -904,13 +884,11 @@ void SerfSession::MKCOL( const rtl::OUSt
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processMkCol( status );
+    aReqProc->processMkCol( status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -927,15 +905,13 @@ void SerfSession::COPY( const rtl::OUStr
     Init( rEnv );
 
     SerfUri theSourceUri( inSourceURL );
-    SerfRequestProcessor aReqProc( *this,
-                                   theSourceUri.GetPath() );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( theSourceUri.GetPath() ) );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processCopy( inDestinationURL,
-                          (inOverWrite ? true : false),
-                          status );
+    aReqProc->processCopy( inDestinationURL,
+                           (inOverWrite ? true : false),
+                           status );
 
-    HandleError( aReqProc,
-                 inSourceURL, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -952,15 +928,13 @@ void SerfSession::MOVE( const rtl::OUStr
     Init( rEnv );
 
     SerfUri theSourceUri( inSourceURL );
-    SerfRequestProcessor aReqProc( *this,
-                                   theSourceUri.GetPath() );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( theSourceUri.GetPath() ) );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processMove( inDestinationURL,
-                          (inOverWrite ? true : false),
-                          status );
+    aReqProc->processMove( inDestinationURL,
+                           (inOverWrite ? true : false),
+                           status );
 
-    HandleError( aReqProc,
-                 inSourceURL, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -974,13 +948,11 @@ void SerfSession::DESTROY( const rtl::OU
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
     apr_status_t status = APR_SUCCESS;
-    aReqProc.processDelete( status );
+    aReqProc->processDelete( status );
 
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    HandleError( aReqProc );
 }
 
 // -------------------------------------------------------------------
@@ -1026,10 +998,8 @@ void SerfSession::LOCK( const ::rtl::OUS
 
     Init( rEnv );
 
-    SerfRequestProcessor aReqProc( *this,
-                                   inPath );
-    HandleError( aReqProc,
-                 inPath, rEnv );
+    boost::shared_ptr<SerfRequestProcessor> aReqProc( createReqProc( inPath ) );
+    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. */
@@ -1371,19 +1341,24 @@ bool SerfSession::removeExpiredLocktoken
 // HandleError
 // Common Error Handler
 // -------------------------------------------------------------------
-void SerfSession::HandleError( SerfRequestProcessor& rReqProc,
-                               const rtl::OUString & /*inPath*/,
-                               const DAVRequestEnvironment & /*rEnv*/ )
+void SerfSession::HandleError( boost::shared_ptr<SerfRequestProcessor> rReqProc )
     throw ( DAVException )
 {
     m_aEnv = DAVRequestEnvironment();
 
-    if ( rReqProc.mpDAVException )
+    if ( rReqProc->mpDAVException )
     {
-        DAVException* mpDAVExp( rReqProc.mpDAVException );
+        DAVException* mpDAVExp( rReqProc->mpDAVException );
 
         serf_connection_reset( getSerfConnection() );
 
+        if ( mpDAVExp->getStatus() == 413 &&
+             m_bNoOfTransferEncodingSwitches < 2 )
+        {
+            m_bUseChunkedEncoding = !m_bUseChunkedEncoding;
+            ++m_bNoOfTransferEncodingSwitches;
+        }
+
         throw DAVException( mpDAVExp->getError(),
                             mpDAVExp->getData(),
                             mpDAVExp->getStatus() );

Modified: incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.hxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.hxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.hxx (original)
+++ incubator/ooo/trunk/main/ucb/source/ucp/webdav/SerfSession.hxx Mon Mar 12 16:06:42 2012
@@ -25,9 +25,10 @@
 #define INCLUDED_SERFSESSION_HXX
 
 #include <vector>
+#include <boost/shared_ptr.hpp>
 #include <osl/mutex.hxx>
-#include "DAVSession.hxx"
-#include "SerfTypes.hxx"
+#include <DAVSession.hxx>
+#include <SerfTypes.hxx>
 //#include "SerfLockStore.hxx"
 #include <SerfUri.hxx>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
@@ -58,18 +59,20 @@ private:
     serf_context_t*         m_pSerfContext;
     serf_bucket_alloc_t*    m_pSerfBucket_Alloc;
     bool                    m_bIsHeadRequestInProgress;
+    bool                    m_bUseChunkedEncoding;
+    sal_Int16               m_bNoOfTransferEncodingSwitches;
 
     const ucbhelper::InternetProxyDecider & m_rProxyDecider;
 
     DAVRequestEnvironment m_aEnv;
 
-    static bool          m_bGlobalsInited;
-    static osl::Mutex m_aGlobalMutex;
 //    static SerfLockStore m_aSerfLockStore;
 
     char* getHostinfo();
     bool isSSLNeeded();
 
+    SerfRequestProcessor* createReqProc( const rtl::OUString & inPath );
+
 protected:
     virtual ~SerfSession();
 
@@ -91,7 +94,7 @@ public:
                                          serf_request_t * inRequest, 
                                          int inCode, 
                                          const char *inAuthProtocol,
-                                         const char *inRealm,
+                                         const char *inRealm,
                                          apr_pool_t *inAprPool );
 
     apr_status_t verifySerfCertificateChain (
@@ -264,9 +267,7 @@ private:
     void Init( const DAVRequestEnvironment & rEnv )
         throw ( DAVException );
 
-    void HandleError( SerfRequestProcessor& rReqProc,
-                      const rtl::OUString & inPath,
-                      const DAVRequestEnvironment & rEnv )
+    void HandleError( boost::shared_ptr<SerfRequestProcessor> rReqProc )
         throw ( DAVException );
 
     const ucbhelper::InternetProxyServer & getProxySettings() const;

Modified: incubator/ooo/trunk/main/uui/source/iahndl-ssl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/uui/source/iahndl-ssl.cxx?rev=1299727&r1=1299726&r2=1299727&view=diff
==============================================================================
--- incubator/ooo/trunk/main/uui/source/iahndl-ssl.cxx (original)
+++ incubator/ooo/trunk/main/uui/source/iahndl-ssl.cxx Mon Mar 12 16:06:42 2012
@@ -325,7 +325,7 @@ handleCertificateValidationRequest_(
                                           SSLWARN_TYPE_DOMAINMISMATCH,
                                           rRequest.HostName );
     }
-
+    else
     if ( (((failures & security::CertificateValidity::TIME_INVALID)
               == security::CertificateValidity::TIME_INVALID) ||
           ((failures & security::CertificateValidity::NOT_TIME_NESTED)
@@ -338,7 +338,7 @@ handleCertificateValidationRequest_(
                                           SSLWARN_TYPE_EXPIRED,
                                           rRequest.HostName );
     }
-
+    else
     if ( (((failures & security::CertificateValidity::REVOKED)
               == security::CertificateValidity::REVOKED) ||
           ((failures & security::CertificateValidity::SIGNATURE_INVALID)