[Libreoffice-commits] core.git: Branch 'feature/cmis' - download.lst libcmis/libcmis-0.3.0-lotus-live-fix.patch libcmis/libcmis-0.3.0.patch libcmis/libcmis-0.3.0-proxy.patch libcmis/libcmis-0.3.0-warnings.patch libcmis/libcmis-0.3.0-win.patch libcmis/StaticLibrary_cmis.mk libcmis/UnpackedTarball_cmis.mk

Cédric Bosdonnat cedric.bosdonnat.ooo at free.fr
Wed Aug 7 06:20:17 PDT 2013


 download.lst                               |    2 
 libcmis/StaticLibrary_cmis.mk              |   13 
 libcmis/UnpackedTarball_cmis.mk            |    8 
 libcmis/libcmis-0.3.0-lotus-live-fix.patch |  122 ---
 libcmis/libcmis-0.3.0-proxy.patch          | 1088 -----------------------------
 libcmis/libcmis-0.3.0-warnings.patch       |  238 ------
 libcmis/libcmis-0.3.0-win.patch            |   25 
 libcmis/libcmis-0.3.0.patch                |   35 
 8 files changed, 14 insertions(+), 1517 deletions(-)

New commits:
commit f8d3367eb1783e89b79b41a616b188ccd3f5644b
Author: Cédric Bosdonnat <cedric.bosdonnat.ooo at free.fr>
Date:   Wed Aug 7 15:23:14 2013 +0200

    Updated internal libcmis to 0.4.0
    
    Change-Id: I9ea14c00016e0390a90cae4c15abb34b879b31a7

diff --git a/download.lst b/download.lst
index 5398cc2..2eec2bc 100644
--- a/download.lst
+++ b/download.lst
@@ -16,7 +16,7 @@ export BOOST_TARBALL := a00d22605d5dbcfb4c9936a9b35bc4c2-boost_1_53_0.tar.bz2
 export BSH_TARBALL := ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz
 export CAIRO_TARBALL := f101a9e88b783337b20b2e26dfd26d5f-cairo-1.10.2.tar.gz
 export CLUCENE_TARBALL := 48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
-export CMIS_TARBALL := b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz
+export CMIS_TARBALL := a649ee75b673cedff7e3322097ca199f-libcmis-0.4.0.tar.gz
 export CPPUNIT_TARBALL := ac4781e01619be13461bb2d562b94a7b-cppunit-1.13.1.tar.gz
 export CT2N_TARBALL := 451ccf439a36a568653b024534669971-ConvertTextToNumber-1.3.2.oxt
 export CURL_TARBALL := 3fa4d5236f2a36ca5c3af6715e837691-curl-7.26.0.tar.gz
diff --git a/libcmis/StaticLibrary_cmis.mk b/libcmis/StaticLibrary_cmis.mk
index ace0326..f87df26 100644
--- a/libcmis/StaticLibrary_cmis.mk
+++ b/libcmis/StaticLibrary_cmis.mk
@@ -38,10 +38,23 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,cmislib,\
 	UnpackedTarball/cmis/src/libcmis/base-session \
 	UnpackedTarball/cmis/src/libcmis/document \
 	UnpackedTarball/cmis/src/libcmis/folder \
+	UnpackedTarball/cmis/src/libcmis/gdrive-document \
+	UnpackedTarball/cmis/src/libcmis/gdrive-folder \
+	UnpackedTarball/cmis/src/libcmis/gdrive-object \
+	UnpackedTarball/cmis/src/libcmis/gdrive-object-type \
+	UnpackedTarball/cmis/src/libcmis/gdrive-property \
+	UnpackedTarball/cmis/src/libcmis/gdrive-repository \
+	UnpackedTarball/cmis/src/libcmis/gdrive-session \
+	UnpackedTarball/cmis/src/libcmis/gdrive-utils \
+	UnpackedTarball/cmis/src/libcmis/json-utils \
+	UnpackedTarball/cmis/src/libcmis/oauth2-data \
+	UnpackedTarball/cmis/src/libcmis/oauth2-handler \
+	UnpackedTarball/cmis/src/libcmis/oauth2-providers \
 	UnpackedTarball/cmis/src/libcmis/object \
 	UnpackedTarball/cmis/src/libcmis/object-type \
 	UnpackedTarball/cmis/src/libcmis/property-type \
 	UnpackedTarball/cmis/src/libcmis/property \
+	UnpackedTarball/cmis/src/libcmis/rendition \
 	UnpackedTarball/cmis/src/libcmis/repository \
 	UnpackedTarball/cmis/src/libcmis/session-factory \
 	UnpackedTarball/cmis/src/libcmis/ws-document \
diff --git a/libcmis/UnpackedTarball_cmis.mk b/libcmis/UnpackedTarball_cmis.mk
index 0a9f9f8..5786474 100644
--- a/libcmis/UnpackedTarball_cmis.mk
+++ b/libcmis/UnpackedTarball_cmis.mk
@@ -13,14 +13,6 @@ $(eval $(call gb_UnpackedTarball_set_tarball,cmis,$(CMIS_TARBALL)))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,cmis,0))
 
-$(eval $(call gb_UnpackedTarball_add_patches,cmis, \
-	libcmis/libcmis-0.3.0-warnings.patch \
-	libcmis/libcmis-0.3.0-win.patch \
-	libcmis/libcmis-0.3.0.patch \
-	libcmis/libcmis-0.3.0-proxy.patch \
-	libcmis/libcmis-0.3.0-lotus-live-fix.patch \
-))
-
 ifeq ($(OS)$(COM),WNTMSC)
 $(eval $(call gb_UnpackedTarball_add_patches,cmis,libcmis/boost-win.patch))
 endif
diff --git a/libcmis/libcmis-0.3.0-lotus-live-fix.patch b/libcmis/libcmis-0.3.0-lotus-live-fix.patch
deleted file mode 100644
index 2aca934..0000000
--- a/libcmis/libcmis-0.3.0-lotus-live-fix.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff --git src/libcmis/atom-folder.cxx src/libcmis/atom-folder.cxx
-index 68fb124..2756a5d 100644
---- src/libcmis/atom-folder.cxx
-+++ src/libcmis/atom-folder.cxx
-@@ -57,8 +57,11 @@ vector< libcmis::ObjectPtr > AtomFolder::getChildren( ) throw ( libcmis::Excepti
- {
-     AtomLink* childrenLink = getLink( "down", "application/atom+xml;type=feed" );
- 
-+    // Some servers aren't giving the GetChildren properly... if not defined, we need to try
-+    // as we may have the right to proceed.
-     if ( ( NULL == childrenLink ) || ( getAllowableActions( ).get() &&
--                !getAllowableActions()->isAllowed( libcmis::ObjectAction::GetChildren ) ) )
-+                ( !getAllowableActions()->isAllowed( libcmis::ObjectAction::GetChildren ) &&
-+                  getAllowableActions()->isDefined( libcmis::ObjectAction::GetChildren ) ) ) )
-         throw libcmis::Exception( string( "GetChildren not allowed on node " ) + getId() );
- 
-     vector< libcmis::ObjectPtr > children;
-@@ -182,7 +185,8 @@ libcmis::DocumentPtr AtomFolder::createDocument( const map< string, libcmis::Pro
-     AtomLink* childrenLink = getLink( "down", "application/atom+xml;type=feed" );
- 
-     if ( ( NULL == childrenLink ) || ( getAllowableActions( ).get() &&
--                !getAllowableActions()->isAllowed( libcmis::ObjectAction::CreateDocument ) ) )
-+                !getAllowableActions()->isAllowed( libcmis::ObjectAction::CreateDocument ) &&
-+                getAllowableActions()->isDefined( libcmis::ObjectAction::CreateDocument ) ) )
-         throw libcmis::Exception( string( "CreateDocument not allowed on folder " ) + getId() );
- 
-     xmlBufferPtr buf = xmlBufferCreate( );
-@@ -210,9 +214,37 @@ libcmis::DocumentPtr AtomFolder::createDocument( const map< string, libcmis::Pro
-     }
- 
-     string respBuf = response->getStream( )->str( );
--    xmlDocPtr doc = xmlReadMemory( respBuf.c_str(), respBuf.size(), getInfosUrl().c_str(), NULL, 0 );
-+    xmlDocPtr doc = xmlReadMemory( respBuf.c_str(), respBuf.size(), getInfosUrl().c_str(), NULL, XML_PARSE_NOERROR );
-     if ( NULL == doc )
--        throw libcmis::Exception( "Failed to parse object infos" );
-+    {
-+        // We may not have the created document entry in the response body: this is
-+        // the behaviour of some servers, but the standard says we need to look for
-+        // the Location header.
-+        map< string, string >& headers = response->getHeaders( );
-+        map< string, string >::iterator it = headers.find( "Location" );
-+
-+        // Some servers like Lotus Live aren't sending Location header, but Content-Location
-+        if ( it == headers.end( ) )
-+            it = headers.find( "Content-Location" );
-+
-+        if ( it != headers.end() )
-+        {
-+            try
-+            {
-+                response = getSession( )->httpGetRequest( it->second );
-+                respBuf = response->getStream( )->str( );
-+                doc = xmlReadMemory( respBuf.c_str(), respBuf.size(), getInfosUrl().c_str(), NULL, XML_PARSE_NOERROR );
-+            }
-+            catch ( const CurlException& e )
-+            {
-+                throw e.getCmisException( );
-+            }
-+        }
-+
-+        // if doc is still NULL after that, then throw an exception
-+        if ( NULL == doc )
-+            throw libcmis::Exception( "Missing expected response from server" );
-+    }
- 
-     libcmis::ObjectPtr created = getSession( )->createObjectFromEntryDoc( doc );
-     xmlFreeDoc( doc );
-diff --git src/libcmis/atom-object.cxx src/libcmis/atom-object.cxx
-index b7b3b4a..812951d 100644
---- src/libcmis/atom-object.cxx
-+++ src/libcmis/atom-object.cxx
-@@ -140,6 +140,34 @@ libcmis::ObjectPtr AtomObject::updateProperties( const map< string, libcmis::Pro
-     return updated;
- }
- 
-+libcmis::AllowableActionsPtr AtomObject::getAllowableActions( )
-+{
-+    if ( !m_allowableActions )
-+    {
-+        // For some reason we had no allowable actions before, get them now.
-+        AtomLink* link = getLink( "http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions", "application/cmisallowableactions+xml" );
-+        if ( link )
-+        {
-+            try
-+            {
-+                libcmis::HttpResponsePtr response = getSession()->httpGetRequest( link->getHref() );
-+                string buf = response->getStream()->str();
-+                xmlDocPtr doc = xmlReadMemory( buf.c_str(), buf.size(), link->getHref().c_str(), NULL, 0 );
-+                xmlNodePtr actionsNode = xmlDocGetRootElement( doc );
-+                if ( actionsNode )
-+                    m_allowableActions.reset( new libcmis::AllowableActions( actionsNode ) );
-+
-+                xmlFreeDoc( doc );
-+            }
-+            catch ( libcmis::Exception& )
-+            {
-+            }
-+        }
-+    }
-+
-+    return libcmis::Object::getAllowableActions();
-+}
-+
- void AtomObject::refreshImpl( xmlDocPtr doc ) throw ( libcmis::Exception )
- {
-     bool createdDoc = ( NULL == doc );
-diff --git src/libcmis/atom-object.hxx src/libcmis/atom-object.hxx
-index 2d1761d..452b4f5 100644
---- src/libcmis/atom-object.hxx
-+++ src/libcmis/atom-object.hxx
-@@ -69,6 +69,8 @@ class AtomObject : public virtual libcmis::Object
-         virtual libcmis::ObjectPtr updateProperties(
-                     const std::map< std::string, libcmis::PropertyPtr >& properties ) throw ( libcmis::Exception );
- 
-+        virtual libcmis::AllowableActionsPtr getAllowableActions( );
-+
-         /** Reload the data from the server.
-               */
-         virtual void refresh( ) throw ( libcmis::Exception ) { refreshImpl( NULL ); }
--- 
-1.7.10.4
-
diff --git a/libcmis/libcmis-0.3.0-proxy.patch b/libcmis/libcmis-0.3.0-proxy.patch
deleted file mode 100644
index a7e85da..0000000
--- a/libcmis/libcmis-0.3.0-proxy.patch
+++ /dev/null
@@ -1,1088 +0,0 @@
-diff --git NEWS NEWS
-index 6e9c10d..0047613 100644
---- NEWS
-+++ NEWS
-@@ -50,3 +50,6 @@
-   * Session factory automatically detects which binding to use
-   * C wrapper API
-   * Unit tests are now split between quick ones and the ones needing a CMIS server
-+
-+0.3.1
-+  * Added support for proxy configuration
-diff --git doc/cmis-client.xml doc/cmis-client.xml
-index b7dce51..2d6cdea 100644
---- doc/cmis-client.xml
-+++ doc/cmis-client.xml
-@@ -213,6 +213,41 @@
- 						</para>
-           </listitem>
-         </varlistentry>
-+        <varlistentry>
-+          <term>--proxy <replaceable class="parameter">url</replaceable></term>
-+          <listitem>
-+            <para>
-+                Use <replaceable class="parameter">url</replaceable> as the HTTP proxy.
-+                Setting this value will override the system proxy settings.
-+						</para>
-+          </listitem>
-+        </varlistentry>
-+        <varlistentry>
-+          <term>--proxy-username <replaceable class="parameter">login</replaceable></term>
-+          <listitem>
-+            <para>
-+							Use <replaceable class="parameter">login</replaceable> to authenticate on the HTTP proxy.
-+						</para>
-+          </listitem>
-+        </varlistentry>
-+        <varlistentry>
-+          <term>--proxy-password <replaceable class="parameter">secret</replaceable></term>
-+          <listitem>
-+            <para>
-+							Use <replaceable class="parameter">secret</replaceable> to authenticate on the HTTP proxy.
-+						</para>
-+          </listitem>
-+        </varlistentry>
-+        <varlistentry>
-+          <term>--noproxy <replaceable class="parameter">list</replaceable></term>
-+          <listitem>
-+            <para>
-+                Proxy settings won't apply to hostnames and domain names listed 
-+                in <replaceable class="parameter">list</replaceable>.
-+                This value is a coma separated list.
-+						</para>
-+          </listitem>
-+        </varlistentry>
-       </variablelist>
-     </refsect2>
-     <refsect2>
-diff --git src/cmis-client.cxx src/cmis-client.cxx
-index 587a05b..432e140 100644
---- src/cmis-client.cxx
-+++ src/cmis-client.cxx
-@@ -121,11 +121,32 @@ libcmis::Session* CmisClient::getSession( ) throw ( CommandException, libcmis::E
-             password = m_vm["password"].as< string >();
-     }
- 
-+    // Look for proxy settings
-+    string proxyUrl;
-+    string proxyUser;
-+    string proxyPass;
-+    string noproxy;
-+    if ( m_vm.count( "proxy" ) > 0 )
-+    {
-+        proxyUrl = m_vm["proxy"].as< string >();
-+
-+        if ( m_vm.count( "proxy-user" ) > 0 )
-+            proxyUser = m_vm["proxy-user"].as< string >();
-+        
-+        if ( m_vm.count( "proxy-password" ) > 0 )
-+            proxyPass = m_vm["proxy-password"].as< string >();
-+
-+        if ( m_vm.count( "noproxy" ) > 0 )
-+            noproxy = m_vm["noproxy"].as< string >();
-+
-+        libcmis::SessionFactory::setProxySettings( proxyUrl, noproxy, proxyUser, proxyPass );
-+    }
- 
-     bool verbose = m_vm.count( "verbose" ) > 0;
- 
-     string repoId;
--    list< libcmis::RepositoryPtr > repositories = libcmis::SessionFactory:: getRepositories( url, username, password, verbose );
-+    list< libcmis::RepositoryPtr > repositories = libcmis::SessionFactory::getRepositories(
-+            url, username, password, verbose );
-     if ( repositories.size( ) == 1 )
-         repoId = repositories.front( )->getId( );
-     else
-@@ -169,10 +190,31 @@ void CmisClient::execute( ) throw ( exception )
-                     password = m_vm["password"].as< string >();
-             }
- 
-+            // Look for proxy settings
-+            string proxyUrl;
-+            string proxyUser;
-+            string proxyPass;
-+            string noproxy;
-+            if ( m_vm.count( "proxy" ) > 0 )
-+            {
-+                proxyUrl = m_vm["proxy"].as< string >();
-+
-+                if ( m_vm.count( "proxy-user" ) > 0 )
-+                    proxyUser = m_vm["proxy-user"].as< string >();
-+                
-+                if ( m_vm.count( "proxy-password" ) > 0 )
-+                    proxyPass = m_vm["proxy-password"].as< string >();
-+
-+                if ( m_vm.count( "noproxy" ) > 0 )
-+                    noproxy = m_vm["noproxy"].as< string >();
-+
-+                libcmis::SessionFactory::setProxySettings( proxyUrl, noproxy, proxyUser, proxyPass );
-+            }
- 
-             bool verbose = m_vm.count( "verbose" ) > 0;
- 
--            list< libcmis::RepositoryPtr > repos = libcmis::SessionFactory::getRepositories( url, username, password, verbose );
-+            list< libcmis::RepositoryPtr > repos = libcmis::SessionFactory::getRepositories(
-+                    url, username, password, verbose );
-         
-             cout << "Repositories: name (id)" << endl;
-             for ( list< libcmis::RepositoryPtr >::iterator it = repos.begin(); it != repos.end(); it++ )
-@@ -828,6 +870,11 @@ options_description CmisClient::getOptionsDescription( )
-         ( "repository,r", value< string >(), "Name of the repository to use" )
-         ( "username,u", value< string >(), "Username used to authenticate to the repository" )
-         ( "password,p", value< string >(), "Password used to authenticate to the repository" )
-+        ( "proxy", value< string >(), "HTTP proxy url to override the system settings" )
-+        ( "noproxy", value< string >(), "Coma separated list if host and domain names not going"
-+                                        "through the proxy" )
-+        ( "proxy-username", value< string >(), "Username to authenticate on the proxy" )
-+        ( "proxy-password", value< string >(), "Password to authenticate on the proxy" )
-     ;
- 
-     options_description setcontentOpts( "modification operations options" );
-diff --git src/libcmis-c/session-factory.cxx src/libcmis-c/session-factory.cxx
-index a171c82..7ebb278 100644
---- src/libcmis-c/session-factory.cxx
-+++ src/libcmis-c/session-factory.cxx
-@@ -37,6 +37,33 @@
- 
- using namespace std;
- 
-+void libcmis_setProxySettings( char* proxy, char* noProxy,
-+        char* proxyUser, char* proxyPass )
-+{
-+    libcmis::SessionFactory::setProxySettings( string( proxy ), string( noProxy ),
-+            string( proxyUser ), string( proxyPass ) );
-+}
-+
-+const char* libcmis_getProxy( )
-+{
-+    return libcmis::SessionFactory::getProxy( ).c_str();
-+}
-+
-+const char* libcmis_getNoProxy( )
-+{
-+    return libcmis::SessionFactory::getNoProxy( ).c_str();
-+}
-+
-+const char* libcmis_getProxyUser( )
-+{
-+    return libcmis::SessionFactory::getProxyUser( ).c_str();
-+}
-+
-+const char* libcmis_getProxyPass( )
-+{
-+    return libcmis::SessionFactory::getProxyPass( ).c_str();
-+}
-+
- libcmis_SessionPtr libcmis_createSession(
-         char* bindingUrl,
-         char* repositoryId,
-@@ -49,7 +76,8 @@ libcmis_SessionPtr libcmis_createSession(
- 
-     try
-     {
--        libcmis::Session* handle = libcmis::SessionFactory::createSession( bindingUrl, username, password, repositoryId, verbose );
-+        libcmis::Session* handle = libcmis::SessionFactory::createSession( bindingUrl, username,
-+                password, repositoryId, verbose );
-         session = new libcmis_session( );
-         session->handle = handle;
-     }
-diff --git src/libcmis-c/session-factory.h src/libcmis-c/session-factory.h
-index ad95acc..d28059e 100644
---- src/libcmis-c/session-factory.h
-+++ src/libcmis-c/session-factory.h
-@@ -34,6 +34,17 @@ extern "C" {
- 
- #include "types.h"
- 
-+void libcmis_setProxySettings(
-+        char* proxy,
-+        char* noProxy,
-+        char* proxyUser,
-+        char* proxyPass );
-+
-+const char* libcmis_getProxy( );
-+const char* libcmis_getNoProxy( );
-+const char* libcmis_getProxyUser( );
-+const char* libcmis_getProxyPass( );
-+
- libcmis_SessionPtr libcmis_createSession(
-         char* bindingUrl,
-         char* repositoryId,
-diff --git src/libcmis/atom-session.cxx src/libcmis/atom-session.cxx
-index 1716755..1f8ac2d 100644
---- src/libcmis/atom-session.cxx
-+++ src/libcmis/atom-session.cxx
-@@ -39,7 +39,7 @@
- 
- using namespace std;
- 
--AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId, 
-+AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId,
-         string username, string password, bool verbose ) throw ( libcmis::Exception ) :
-     BaseSession( atomPubUrl, repositoryId, username, password, verbose ),
-     m_repository( )
-@@ -139,7 +139,8 @@ void AtomPubSession::initialize( ) throw ( libcmis::Exception )
- 
- }
- 
--list< libcmis::RepositoryPtr > AtomPubSession::getRepositories( string url, string username, string password, bool verbose ) throw ( libcmis::Exception )
-+list< libcmis::RepositoryPtr > AtomPubSession::getRepositories( string url, string username,
-+        string password, bool verbose ) throw ( libcmis::Exception )
- {
-     AtomPubSession session( url, string(), username, password, verbose );
-     return session.m_repositories;
-diff --git src/libcmis/atom-session.hxx src/libcmis/atom-session.hxx
-index 568b9b0..29eb359 100644
---- src/libcmis/atom-session.hxx
-+++ src/libcmis/atom-session.hxx
-@@ -39,7 +39,7 @@ class AtomPubSession : public BaseSession
-     public:
-         AtomPubSession( std::string sAtomPubUrl, std::string repositoryId,
-                         std::string username, std::string password,
--                        bool verbose ) throw ( libcmis::Exception );
-+                        bool verbose =false ) throw ( libcmis::Exception );
-         AtomPubSession( const AtomPubSession& copy );
-         ~AtomPubSession( );
- 
-diff --git src/libcmis/base-session.cxx src/libcmis/base-session.cxx
-index adc030e..b007a9d 100644
---- src/libcmis/base-session.cxx
-+++ src/libcmis/base-session.cxx
-@@ -33,6 +33,7 @@
- #include <libxml/xpath.h>
- 
- #include "base-session.hxx"
-+#include "session-factory.hxx"
- #include "xml-utils.hxx"
- 
- using namespace std;
-@@ -105,11 +106,12 @@ namespace
-     }
- }
- 
--BaseSession::BaseSession( string atomPubUrl, string repositoryId, 
--        string username, string password, bool verbose ) throw ( libcmis::Exception ) :
-+BaseSession::BaseSession( string atomPubUrl, string repositoryId, string username,
-+        string password, bool verbose ) throw ( libcmis::Exception ) :
-     Session( ),
-     m_authProvider( ),
-     m_curlHandle( NULL ),
-+    m_no100Continue( false ),
-     m_bindingUrl( atomPubUrl ),
-     m_repositoryId( repositoryId ),
-     m_username( username ),
-@@ -127,6 +129,7 @@ BaseSession::BaseSession( const BaseSession& copy ) :
-     Session( ),
-     m_authProvider( copy.m_authProvider ),
-     m_curlHandle( NULL ),
-+    m_no100Continue( copy.m_no100Continue ),
-     m_bindingUrl( copy.m_bindingUrl ),
-     m_repositoryId( copy.m_repositoryId ),
-     m_username( copy.m_username ),
-@@ -141,11 +144,11 @@ BaseSession::BaseSession( const BaseSession& copy ) :
-     m_curlHandle = curl_easy_init( );
- }
- 
--
- BaseSession& BaseSession::operator=( const BaseSession& copy )
- {
-     m_authProvider = copy.m_authProvider;
-     m_curlHandle = NULL;
-+    m_no100Continue = copy.m_no100Continue;
-     m_bindingUrl = copy.m_bindingUrl;
-     m_repositoryId = copy.m_repositoryId;
-     m_username = copy.m_username;
-@@ -186,7 +189,7 @@ string BaseSession::createUrl( const string& pattern, map< string, string > vari
-         if ( pos != string::npos )
-         {
-             // Escape the URL by chunks
--#if LIBCURL_VERSION_VALUE >= 0x071504
-+#if LIBCURL_VERSION_VALUE >= 0x070F04
-             char* escaped = curl_easy_escape( m_curlHandle, value.c_str(), value.length() );
- #else
-             char* escaped = curl_escape( value.c_str(), value.length() );
-@@ -215,6 +218,9 @@ string BaseSession::createUrl( const string& pattern, map< string, string > vari
- 
- libcmis::HttpResponsePtr BaseSession::httpGetRequest( string url ) throw ( CurlException )
- {
-+    // Reset the handle for the request
-+    curl_easy_reset( m_curlHandle );
-+
-     libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
- 
-     curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
-@@ -244,6 +250,9 @@ libcmis::HttpResponsePtr BaseSession::httpGetRequest( string url ) throw ( CurlE
- 
- libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, vector< string > headers ) throw ( CurlException )
- {
-+    // Reset the handle for the request
-+    curl_easy_reset( m_curlHandle );
-+
-     libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
- 
-     curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
-@@ -266,12 +275,32 @@ libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, v
-     struct curl_slist *headers_slist = NULL;
-     for ( vector< string >::iterator it = headers.begin( ); it != headers.end( ); ++it )
-         headers_slist = curl_slist_append( headers_slist, it->c_str( ) );
-+
-+    // If we know for sure that 100-Continue won't be accepted,
-+    // don't even try with it to save one HTTP request.
-+    if ( m_no100Continue )
-+        headers_slist = curl_slist_append( headers_slist, "Expect:" );
-     curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
- 
-     try
-     {
-         httpRunRequest( url );
-         response->getData( )->finish();
-+
-+        /** If we had a HTTP 417 response, this is likely to be due to some 
-+            HTTP 1.0 proxy / server not accepting the "Expect: 100-continue"
-+            header. Try to disable this header and try again.
-+          */
-+        if ( getHttpStatus() == 417 )
-+        {
-+            headers_slist = curl_slist_append( headers_slist, "Expect:" );
-+            curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
-+            httpRunRequest( url );
-+            response->getData( )->finish();
-+
-+            // Remember that we don't want 100-Continue for the future requests
-+            m_no100Continue = true;
-+        }
-     }
-     catch ( CurlException& e )
-     {
-@@ -286,6 +315,9 @@ libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, v
- 
- libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream& is, string contentType ) throw ( CurlException )
- {
-+    // Reset the handle for the request
-+    curl_easy_reset( m_curlHandle );
-+
-     libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
- 
-     curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
-@@ -308,12 +340,32 @@ libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream
-     struct curl_slist *headers_slist = NULL;
-     string contentTypeHeader = string( "Content-Type:" ) + contentType;
-     headers_slist = curl_slist_append( headers_slist, contentTypeHeader.c_str( ) );
-+
-+    // If we know for sure that 100-Continue won't be accepted,
-+    // don't even try with it to save one HTTP request.
-+    if ( m_no100Continue )
-+        headers_slist = curl_slist_append( headers_slist, "Expect:" );
-     curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
- 
-     try
-     {
-         httpRunRequest( url );
-         response->getData( )->finish();
-+
-+        /** If we had a HTTP 417 response, this is likely to be due to some 
-+            HTTP 1.0 proxy / server not accepting the "Expect: 100-continue"
-+            header. Try to disable this header and try again.
-+          */
-+        if ( getHttpStatus() == 417 )
-+        {
-+            headers_slist = curl_slist_append( headers_slist, "Expect:" );
-+            curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
-+            httpRunRequest( url );
-+            response->getData( )->finish();
-+
-+            // Remember that we don't want 100-Continue for the future requests
-+            m_no100Continue = true;
-+        }
-     }
-     catch ( const CurlException& e )
-     {
-@@ -328,6 +380,9 @@ libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream
- 
- void BaseSession::httpDeleteRequest( string url ) throw ( CurlException )
- {
-+    // Reset the handle for the request
-+    curl_easy_reset( m_curlHandle );
-+
-     curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, "DELETE" );
-     httpRunRequest( url );
- }
-@@ -351,7 +406,7 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
-     {
-         curl_easy_setopt( m_curlHandle, CURLOPT_HTTPAUTH, CURLAUTH_ANY );
- 
--#if LIBCURL_VERSION_VALUE >= 0x071901
-+#if LIBCURL_VERSION_VALUE >= 0x071301
-         curl_easy_setopt( m_curlHandle, CURLOPT_USERNAME, m_username.c_str() );
-         curl_easy_setopt( m_curlHandle, CURLOPT_PASSWORD, m_password.c_str() );
- #else
-@@ -360,6 +415,28 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
- #endif
-     }
- 
-+    // Set the proxy configuration if any
-+    if ( !libcmis::SessionFactory::getProxy( ).empty() )
-+    {
-+        curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, libcmis::SessionFactory::getProxy( ).c_str() );
-+#if LIBCURL_VERSION_VALUE >= 0x071304
-+        curl_easy_setopt( m_curlHandle, CURLOPT_NOPROXY, libcmis::SessionFactory::getNoProxy( ).c_str() );
-+#endif
-+        const string& proxyUser = libcmis::SessionFactory::getProxyUser( );
-+        const string& proxyPass = libcmis::SessionFactory::getProxyPass( );
-+        if ( !proxyUser.empty( ) && !proxyPass.empty( ) )
-+        {
-+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYAUTH, CURLAUTH_ANY ); 
-+#if LIBCURL_VERSION_VALUE >= 0X071301
-+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERNAME, proxyUser.c_str( ) );
-+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYPASSWORD, proxyPass.c_str( ) );
-+#else
-+            string userpwd = proxyUser + ":" + proxyPass;
-+            curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, userpwd.c_str( ) );
-+#endif
-+        }
-+    }
-+
-     // Get some feedback when something wrong happens
-     char errBuff[CURL_ERROR_SIZE];
-     curl_easy_setopt( m_curlHandle, CURLOPT_ERRORBUFFER, errBuff );
-@@ -373,9 +450,6 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
- 
-     // Perform the query
-     CURLcode errCode = curl_easy_perform( m_curlHandle );
--    
--    // Reset the handle for the next request
--    curl_easy_reset( m_curlHandle );
- 
-     bool isHttpError = errCode == CURLE_HTTP_RETURNED_ERROR;
-     if ( CURLE_OK != errCode && !( m_noHttpErrors && isHttpError ) )
-diff --git src/libcmis/base-session.hxx src/libcmis/base-session.hxx
-index fb95ba7..0b90c1f 100644
---- src/libcmis/base-session.hxx
-+++ src/libcmis/base-session.hxx
-@@ -94,6 +94,7 @@ class BaseSession : public libcmis::Session
-         libcmis::AuthProviderPtr m_authProvider;
- 
-         CURL* m_curlHandle;
-+        bool  m_no100Continue;
- 
-     protected:
-         std::string m_bindingUrl;
-@@ -110,7 +111,7 @@ class BaseSession : public libcmis::Session
-     public:
-         BaseSession( std::string sBindingUrl, std::string repository,
-                         std::string username, std::string password,
--                        bool verbose ) throw ( libcmis::Exception );
-+                        bool verbose = false ) throw ( libcmis::Exception );
-         BaseSession( const BaseSession& copy );
-         ~BaseSession( );
- 
-@@ -137,8 +138,6 @@ class BaseSession : public libcmis::Session
-         libcmis::HttpResponsePtr httpPostRequest( std::string url, std::istringstream& is, std::string contentType ) throw ( CurlException );
-         void httpDeleteRequest( std::string url ) throw ( CurlException );
- 
--        void httpRunRequest( std::string url ) throw ( CurlException );
--
-         long getHttpStatus( );
- 
-         // Session methods
-@@ -148,6 +147,8 @@ class BaseSession : public libcmis::Session
-         virtual libcmis::FolderPtr getFolder( std::string id ) throw ( libcmis::Exception );
- 
-         virtual void setAuthenticationProvider( libcmis::AuthProviderPtr provider ) { m_authProvider = provider; }
-+    private:
-+        void httpRunRequest( std::string url ) throw ( CurlException );
- };
- 
- #endif
-diff --git src/libcmis/session-factory.cxx src/libcmis/session-factory.cxx
-index d7d886b..afe6943 100644
---- src/libcmis/session-factory.cxx
-+++ src/libcmis/session-factory.cxx
-@@ -33,8 +33,23 @@ using namespace std;
- 
- namespace libcmis
- {
-+    string SessionFactory::s_proxy;
-+    string SessionFactory::s_noProxy;
-+    string SessionFactory::s_proxyUser;
-+    string SessionFactory::s_proxyPass;
-+
-+    void SessionFactory::setProxySettings( string proxy, string noProxy,
-+            string proxyUser, string proxyPass )
-+    {
-+        SessionFactory::s_proxy = proxy;
-+        SessionFactory::s_noProxy = noProxy;
-+        SessionFactory::s_proxyUser = proxyUser;
-+        SessionFactory::s_proxyPass = proxyPass;
-+    }
-+
-     Session* SessionFactory::createSession( string bindingUrl, string username,
--            string password, string repository, bool verbose ) throw ( Exception )
-+            string password, string repository,
-+            bool verbose ) throw ( Exception )
-     {
-         Session* session = NULL;
-         
-@@ -68,8 +83,8 @@ namespace libcmis
-         return session;
-     }
- 
--    list< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl, string username,
--            string password, bool verbose ) throw ( Exception )
-+    list< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl,
-+            string username, string password, bool verbose ) throw ( Exception )
-     {
-         list< RepositoryPtr > repos;
- 
-diff --git src/libcmis/session-factory.hxx src/libcmis/session-factory.hxx
-index 677c2ab..598497f 100644
---- src/libcmis/session-factory.hxx
-+++ src/libcmis/session-factory.hxx
-@@ -40,8 +40,24 @@ namespace libcmis
- {
-     class SessionFactory
-     {
-+        private:
-+            static std::string s_proxy;
-+            static std::string s_noProxy;
-+            static std::string s_proxyUser;
-+            static std::string s_proxyPass;
-+
-         public:
- 
-+            static void setProxySettings( std::string proxy,
-+                    std::string noProxy,
-+                    std::string proxyUser,
-+                    std::string proxyPass );
-+
-+            static const std::string& getProxy() { return s_proxy; }
-+            static const std::string& getNoProxy() { return s_noProxy; }
-+            static const std::string& getProxyUser() { return s_proxyUser; }
-+            static const std::string& getProxyPass() { return s_proxyPass; }
-+
-             /** Create a session from the given parameters. The binding type is automatically
-                 detected based on the provided URL.
- 
-diff --git src/libcmis/test-atom.cxx src/libcmis/test-atom.cxx
-index 4ee64ea..624078d 100644
---- src/libcmis/test-atom.cxx
-+++ src/libcmis/test-atom.cxx
-@@ -211,7 +211,7 @@ class TestAuthProvider : public libcmis::AuthProvider
- 
- void AtomTest::authCallbackTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, string( ), false);
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, string( ) );
- 
-     // Test cancelled authentication
-     {
-@@ -239,7 +239,7 @@ void AtomTest::authCallbackTest( )
- 
- void AtomTest::getUnexistantTypeTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     
-     try
-     {
-@@ -254,7 +254,7 @@ void AtomTest::getUnexistantTypeTest( )
- 
- void AtomTest::getNormalTypeTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     
-     libcmis::ObjectTypePtr type = session.getType( TEST_TYPE_ID );
- 
-@@ -265,7 +265,7 @@ void AtomTest::getNormalTypeTest( )
- 
- void AtomTest::getTypeChildrenTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     
-     libcmis::ObjectTypePtr type = session.getType( CHILDREN_TEST_TYPE_ID );
-     vector< libcmis::ObjectTypePtr > children = type->getChildren( );
-@@ -275,7 +275,7 @@ void AtomTest::getTypeChildrenTest( )
- 
- void AtomTest::getUnexistantFolderTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     try
-     {
-@@ -290,7 +290,7 @@ void AtomTest::getUnexistantFolderTest( )
- 
- void AtomTest::getUnexistantObjectTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     
-     try
-     {
-@@ -305,7 +305,7 @@ void AtomTest::getUnexistantObjectTest( )
- 
- void AtomTest::getFolderFromOtherNodeTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr folder = session.getFolder( TEST_DOCUMENT_ID );
- 
-     CPPUNIT_ASSERT_MESSAGE( "Nothing should be returned: not a folder",
-@@ -314,7 +314,7 @@ void AtomTest::getFolderFromOtherNodeTest( )
- 
- void AtomTest::getFolderCreationFromUrlTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr folder = session.getFolder( TEST_FOLDER_ID );
- 
-     AtomFolder* atomFolder = dynamic_cast< AtomFolder* >( folder.get( ) );
-@@ -336,7 +336,7 @@ void AtomTest::getFolderCreationFromUrlTest( )
- 
- void AtomTest::getDocumentCreationFromUrlTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
- 
-     AtomDocument* atomDocument = dynamic_cast< AtomDocument* >( object.get( ) );
-@@ -359,7 +359,7 @@ void AtomTest::getDocumentCreationFromUrlTest( )
- 
- void AtomTest::getByPathValidTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     try
-     {
-         libcmis::ObjectPtr object = session.getObjectByPath( TEST_PATH_VALID );
-@@ -376,7 +376,7 @@ void AtomTest::getByPathValidTest( )
- 
- void AtomTest::getByPathInvalidTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     try
-     {
-         libcmis::ObjectPtr object = session.getObjectByPath( TEST_PATH_INVALID );
-@@ -391,7 +391,7 @@ void AtomTest::getByPathInvalidTest( )
-         
- void AtomTest::getAllowableActionsTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr folder = session.getRootFolder( );
- 
-     boost::shared_ptr< libcmis::AllowableActions > toCheck = folder->getAllowableActions( );
-@@ -405,7 +405,7 @@ void AtomTest::getAllowableActionsTest( )
- 
- void AtomTest::getChildrenTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr folder = session.getRootFolder( );
- 
-     vector< libcmis::ObjectPtr > children = folder->getChildren( );
-@@ -429,7 +429,7 @@ void AtomTest::getChildrenTest( )
- 
- void AtomTest::getObjectParentsTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
-     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-     
-@@ -445,7 +445,7 @@ void AtomTest::getObjectParentsTest( )
- 
- void AtomTest::getContentStreamTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
-     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-     
-@@ -467,7 +467,7 @@ void AtomTest::getContentStreamTest( )
- 
- void AtomTest::setContentStreamTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
-     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-     
-@@ -503,7 +503,7 @@ void AtomTest::setContentStreamTest( )
- 
- void AtomTest::updatePropertiesTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // Values for the test
-     libcmis::ObjectPtr object = session.getObject( "114" );
-@@ -530,7 +530,7 @@ void AtomTest::updatePropertiesTest( )
- 
- void AtomTest::createFolderTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
- 
-     // Prepare the properties for the new object, object type is cmis:folder
-@@ -564,7 +564,7 @@ void AtomTest::createFolderTest( )
- 
- void AtomTest::createFolderBadTypeTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
- 
-     // Prepare the properties for the new object, object type is cmis:document to trigger the exception
-@@ -603,7 +603,7 @@ void AtomTest::createFolderBadTypeTest( )
- 
- void AtomTest::createDocumentTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
- 
-     // Prepare the properties for the new object, object type is cmis:folder
-@@ -647,7 +647,7 @@ void AtomTest::createDocumentTest( )
- 
- void AtomTest::deleteDocumentTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     string id( "130" );
-     libcmis::ObjectPtr object = session.getObject( id );
-@@ -669,7 +669,7 @@ void AtomTest::deleteDocumentTest( )
- 
- void AtomTest::deleteTreeTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     string id( "117" );
-     libcmis::ObjectPtr object = session.getObject( id );
-@@ -691,7 +691,7 @@ void AtomTest::deleteTreeTest( )
- 
- void AtomTest::checkOutTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a document of type VersionableType
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkOutTest" );
-@@ -709,7 +709,7 @@ void AtomTest::checkOutTest( )
- 
- void AtomTest::cancelCheckOutTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a versionable document and check it out
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "cancelCheckOutTest" );
-@@ -734,7 +734,7 @@ void AtomTest::cancelCheckOutTest( )
- 
- void AtomTest::checkInTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a versionable document and check it out
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkInTest" );
-@@ -770,7 +770,7 @@ void AtomTest::checkInTest( )
- 
- void AtomTest::getAllVersionsTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a versionable document and check it out
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "getAllVersionsTest" );
-@@ -795,7 +795,7 @@ void AtomTest::getAllVersionsTest( )
- 
- void AtomTest::moveTest( )
- {
--    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+    AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-     
-     string id( "135" );
-     libcmis::ObjectPtr object = session.getObject( id );
-diff --git src/libcmis/test-ws.cxx src/libcmis/test-ws.cxx
-index 1b5dfee..ad564bc 100644
---- src/libcmis/test-ws.cxx
-+++ src/libcmis/test-ws.cxx
-@@ -136,19 +136,19 @@ void WSTest::getRepositoriesTest()
- 
- void WSTest::sessionCreationTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD );
-     CPPUNIT_ASSERT_MESSAGE( "No RepositoryService URL", !session.getServiceUrl( "RepositoryService" ).empty( ) );
- }
- 
- void WSTest::getRepositoryTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     CPPUNIT_ASSERT_EQUAL_MESSAGE( "Repository info badly retrieved", string( "100" ), session.getRepository()->getRootId( ) );
- }
- 
- void WSTest::getRepositoryBadTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD );
-     try
-     {
-         session.getRepositoryService( ).getRepositoryInfo( "bad" );
-@@ -164,7 +164,7 @@ void WSTest::getRepositoryBadTest( )
- 
- void WSTest::getTypeDefinitionTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     string id( "ComplexType" ); 
-     libcmis::ObjectTypePtr actual = session.getType( id );
- 
-@@ -175,7 +175,7 @@ void WSTest::getTypeDefinitionTest( )
- 
- void WSTest::getTypeDefinitionErrorTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     
-     string id( "bad_type" );
-     try
-@@ -192,7 +192,7 @@ void WSTest::getTypeDefinitionErrorTest( )
- 
- void WSTest::getTypeChildrenTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectTypePtr actual = session.getType( "cmis:document" );
- 
-     vector< libcmis::ObjectTypePtr > children = actual->getChildren( );
-@@ -202,7 +202,7 @@ void WSTest::getTypeChildrenTest( )
- 
- void WSTest::getObjectTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     string id( "101" ); 
-     libcmis::ObjectPtr actual = session.getObject( id );
- 
-@@ -217,7 +217,7 @@ void WSTest::getObjectTest( )
- 
- void WSTest::getObjectDocumentTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     string id( "114" ); 
-     libcmis::ObjectPtr actual = session.getObject( id );
- 
-@@ -232,7 +232,7 @@ void WSTest::getObjectDocumentTest( )
- 
- void WSTest::getObjectParentsTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( "116" );
-     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-     
-@@ -248,7 +248,7 @@ void WSTest::getObjectParentsTest( )
- 
- void WSTest::getChildrenTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr folder = session.getRootFolder( );
- 
-     vector< libcmis::ObjectPtr > children = folder->getChildren( );
-@@ -270,7 +270,7 @@ void WSTest::getChildrenTest( )
- 
- void WSTest::getByPathValidTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     try
-     {
-         libcmis::ObjectPtr object = session.getObjectByPath( "/My_Folder-0-0/My_Document-1-2" );
-@@ -287,7 +287,7 @@ void WSTest::getByPathValidTest( )
- 
- void WSTest::getByPathInvalidTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     try
-     {
-         libcmis::ObjectPtr object = session.getObjectByPath( "/some/dummy/path" );
-@@ -302,7 +302,7 @@ void WSTest::getByPathInvalidTest( )
- 
- void WSTest::updatePropertiesTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     
-     // Values for the test
-     libcmis::ObjectPtr object = session.getObject( "114" );
-@@ -329,7 +329,7 @@ void WSTest::updatePropertiesTest( )
- 
- void WSTest::createFolderTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
- 
-     // Prepare the properties for the new object, object type is cmis:folder
-@@ -363,7 +363,7 @@ void WSTest::createFolderTest( )
- 
- void WSTest::createFolderBadTypeTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
- 
-     // Prepare the properties for the new object, object type is cmis:document to trigger the exception
-@@ -401,7 +401,7 @@ void WSTest::createFolderBadTypeTest( )
- 
- void WSTest::createDocumentTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
- 
-     // Prepare the properties for the new object, object type is cmis:folder
-@@ -444,7 +444,7 @@ void WSTest::createDocumentTest( )
- 
- void WSTest::deleteObjectTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // Get the object to remove
-     string id( "130" );
-@@ -467,7 +467,7 @@ void WSTest::deleteObjectTest( )
- 
- void WSTest::deleteTreeTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- 
-     string id( "117" );
-     libcmis::ObjectPtr object = session.getObject( id );
-@@ -489,7 +489,7 @@ void WSTest::deleteTreeTest( )
- 
- void WSTest::moveTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     
-     string id( "135" );
-     libcmis::ObjectPtr object = session.getObject( id );
-@@ -508,7 +508,7 @@ void WSTest::moveTest( )
- 
- void WSTest::getContentStreamTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( "116" );
-     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-     
-@@ -532,7 +532,7 @@ void WSTest::getContentStreamTest( )
- 
- void WSTest::setContentStreamTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-     libcmis::ObjectPtr object = session.getObject( "116" );
-     libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-     
-@@ -570,7 +570,7 @@ void WSTest::setContentStreamTest( )
- 
- void WSTest::checkOutTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a document of type VersionableType
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkOutTest" );
-@@ -588,7 +588,7 @@ void WSTest::checkOutTest( )
- 
- void WSTest::cancelCheckOutTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a versionable document and check it out
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "cancelCheckOutTest" );
-@@ -613,7 +613,7 @@ void WSTest::cancelCheckOutTest( )
- 
- void WSTest::checkInTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a versionable document and check it out
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkInTest" );
-@@ -649,7 +649,7 @@ void WSTest::checkInTest( )
- 
- void WSTest::getAllVersionsTest( )
- {
--    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+    WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- 
-     // First create a versionable document and check it out
-     libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "getAllVersionsTest" );
-diff --git src/libcmis/ws-relatedmultipart.cxx src/libcmis/ws-relatedmultipart.cxx
-index 37f133a..ef91b4d 100644
---- src/libcmis/ws-relatedmultipart.cxx
-+++ src/libcmis/ws-relatedmultipart.cxx
-@@ -299,7 +299,7 @@ boost::shared_ptr< istream > getStreamFromNode( xmlNodePtr node, RelatedMultipar
-             {
-                 id = href.substr( 4 );
-                 // URL-decode the id
--#if LIBCURL_VERSION_VALUE >= 0x071504
-+#if LIBCURL_VERSION_VALUE >= 0x070F04
-                 char* escaped = curl_easy_unescape( NULL, id.c_str(), id.length(), NULL );
- #else
-                 char* escaped = curl_unescape( id.c_str(), id.length() );
-diff --git src/libcmis/ws-session.cxx src/libcmis/ws-session.cxx
-index b906a5a..f551109 100644
---- src/libcmis/ws-session.cxx
-+++ src/libcmis/ws-session.cxx
-@@ -39,8 +39,8 @@
- 
- using namespace std;
- 
--WSSession::WSSession( string bindingUrl, string repositoryId, 
--        string username, string password, bool verbose ) throw ( libcmis::Exception ) :
-+WSSession::WSSession( string bindingUrl, string repositoryId, string username,
-+        string password, bool verbose ) throw ( libcmis::Exception ) :
-     BaseSession( bindingUrl, repositoryId, username, password, verbose ),
-     m_servicesUrls( ),
-     m_navigationService( NULL ),
-@@ -336,7 +336,8 @@ VersioningService& WSSession::getVersioningService( )
-     return *m_versioningService;
- }
- 
--list< libcmis::RepositoryPtr > WSSession::getRepositories( string url, string username, string password, bool verbose ) throw ( libcmis::Exception )
-+list< libcmis::RepositoryPtr > WSSession::getRepositories( string url, string username,
-+        string password, bool verbose ) throw ( libcmis::Exception )
- {
-     WSSession session( url, string(), username, password, verbose );
-     return session.m_repositories;
-diff --git src/libcmis/ws-session.hxx src/libcmis/ws-session.hxx
-index 952e914..e8b806a 100644
---- src/libcmis/ws-session.hxx
-+++ src/libcmis/ws-session.hxx
-@@ -52,7 +52,7 @@ class WSSession : public BaseSession, public SoapSession
-     public:
-         WSSession( std::string bindingUrl, std::string repositoryId,
-                    std::string username, std::string password,
--                   bool verbose ) throw ( libcmis::Exception );
-+                   bool verbose = false ) throw ( libcmis::Exception );
-         WSSession( const WSSession& copy );
-         ~WSSession( );
- 
diff --git a/libcmis/libcmis-0.3.0-warnings.patch b/libcmis/libcmis-0.3.0-warnings.patch
deleted file mode 100644
index b67ae47..0000000
--- a/libcmis/libcmis-0.3.0-warnings.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-diff --git src/libcmis/atom-folder.cxx src/libcmis/atom-folder.cxx
-index f2e0381..1c65d41 100644
---- src/libcmis/atom-folder.cxx
-+++ src/libcmis/atom-folder.cxx
-@@ -177,7 +177,7 @@ libcmis::FolderPtr AtomFolder::createFolder( const map< string, libcmis::Propert
- }
- 
- libcmis::DocumentPtr AtomFolder::createDocument( const map< string, libcmis::PropertyPtr >& properties,
--        boost::shared_ptr< ostream > os, string contentType, string fileName ) throw ( libcmis::Exception )
-+        boost::shared_ptr< ostream > os, string contentType, string ) throw ( libcmis::Exception )
- {
-     AtomLink* childrenLink = getLink( "down", "application/atom+xml;type=feed" );
- 
-diff --git src/libcmis/atom-session.cxx src/libcmis/atom-session.cxx
-index c2baa4f..1716755 100644
---- src/libcmis/atom-session.cxx
-+++ src/libcmis/atom-session.cxx
-@@ -39,74 +39,6 @@
- 
- using namespace std;
- 
--namespace
--{
--    size_t lcl_getEncoding( void *ptr, size_t size, size_t nmemb, void *userdata )
--    {
--        libcmis::EncodedData* data = static_cast< libcmis::EncodedData* >( userdata );
--
--        string buf( ( const char* ) ptr, size * nmemb );
--
--        size_t sepPos = buf.find( ':' );
--        if ( sepPos != string::npos )
--        {
--            string name( buf, 0, sepPos );
--            if ( "Content-Transfer-Encoding" == name )
--            {
--                string encoding = buf.substr( sepPos + 1 );
--                encoding.erase( remove_if( encoding.begin(), encoding.end(), ptr_fun< int, int> ( isspace ) ), encoding.end() );
--
--                data->setEncoding( encoding );
--            }
--        }
--        
--        return nmemb;
--    }
--
--    size_t lcl_bufferData( void* buffer, size_t size, size_t nmemb, void* data )
--    {
--        libcmis::EncodedData* encoded = static_cast< libcmis::EncodedData* >( data );
--        encoded->decode( buffer, size, nmemb );
--        return nmemb;
--    }
--
--    size_t lcl_readStream( void* buffer, size_t size, size_t nmemb, void* data )
--    {
--        istream& is = *( static_cast< istream* >( data ) );
--        char* out = ( char * ) buffer;
--        is.read( out, size * nmemb );
--
--        return is.gcount( ) / size;
--    }
--
--    curlioerr lcl_ioctlStream( CURL* /*handle*/, int cmd, void* data )
--    {
--        curlioerr errCode = CURLIOE_OK;
--
--        switch ( cmd )
--        {
--            case CURLIOCMD_RESTARTREAD:
--                {
--                    istream& is = *( static_cast< istream* >( data ) );
--                    is.clear( );
--                    is.seekg( 0, ios::beg );
--
--                    if ( !is.good() )
--                    {
--                        fprintf ( stderr, "rewind failed\n" );
--                        errCode = CURLIOE_FAILRESTART;
--                    }
--                }
--                break;
--            case CURLIOCMD_NOP:
--                break;
--            default:
--                errCode = CURLIOE_UNKNOWNCMD;
--        }
--        return errCode;
--    }
--}
--
- AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId, 
-         string username, string password, bool verbose ) throw ( libcmis::Exception ) :
-     BaseSession( atomPubUrl, repositoryId, username, password, verbose ),
-@@ -190,7 +122,7 @@ void AtomPubSession::initialize( ) throw ( libcmis::Exception )
- 
-                             m_repositories.push_back( ws );
-                         }
--                        catch ( const libcmis::Exception& e )
-+                        catch ( const libcmis::Exception& )
-                         {
-                             // Invalid repository, don't take care of this
-                         }
-diff --git src/libcmis/atom-workspace.cxx src/libcmis/atom-workspace.cxx
-index b6f2388..527d0f4 100644
---- src/libcmis/atom-workspace.cxx
-+++ src/libcmis/atom-workspace.cxx
-@@ -69,6 +69,7 @@ AtomRepository::AtomRepository( xmlNodePtr wsNode ) throw ( libcmis::Exception )
- }
- 
- AtomRepository::AtomRepository( const AtomRepository& rCopy ) :
-+    Repository( rCopy ),
-     m_collections( rCopy.m_collections ),
-     m_uriTemplates( rCopy.m_uriTemplates )
- {
-diff --git src/libcmis/base-session.cxx src/libcmis/base-session.cxx
-index c99f110..b060d0b 100644
---- src/libcmis/base-session.cxx
-+++ src/libcmis/base-session.cxx
-@@ -61,28 +61,6 @@ namespace
-         return nmemb;
-     }
- 
--    size_t lcl_getEncoding( void *ptr, size_t size, size_t nmemb, void *userdata )
--    {
--        libcmis::EncodedData* data = static_cast< libcmis::EncodedData* >( userdata );
--
--        string buf( ( const char* ) ptr, size * nmemb );
--
--        size_t sepPos = buf.find( ':' );
--        if ( sepPos != string::npos )
--        {
--            string name( buf, 0, sepPos );
--            if ( "Content-Transfer-Encoding" == name )
--            {
--                string encoding = buf.substr( sepPos + 1 );
--                encoding.erase( remove_if( encoding.begin(), encoding.end(), ptr_fun< int, int> ( isspace ) ), encoding.end() );
--
--                data->setEncoding( encoding );
--            }
--        }
--        
--        return nmemb;
--    }
--
-     size_t lcl_bufferData( void* buffer, size_t size, size_t nmemb, void* data )
-     {
-         libcmis::EncodedData* encoded = static_cast< libcmis::EncodedData* >( data );
-@@ -125,16 +103,6 @@ namespace
-         }
-         return errCode;
-     }
--
--    string lcl_tolower( string sText )
--    {
--        string lower( sText );
--        for ( size_t i = 0; i < sText.size(); ++i )
--        {
--            lower[i] = ::tolower( sText[i] );
--        }
--        return lower;
--    }
- }
- 
- BaseSession::BaseSession( string atomPubUrl, string repositoryId, 
-@@ -443,7 +411,7 @@ const char* CurlException::what( ) const throw ()
-     if ( !isCancelled( ) )
-     {
-         stringstream buf;
--        buf << "CURL error - " << m_code << ": ";
-+        buf << "CURL error - " << ( unsigned int )m_code << ": ";
-         buf << m_message;
-         m_errorMessage = buf.str( );
- 
-diff --git src/libcmis/object.cxx src/libcmis/object.cxx
-index 690bb17..3397070 100644
---- src/libcmis/object.cxx
-+++ src/libcmis/object.cxx
-@@ -93,8 +93,8 @@ namespace libcmis
-             xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression( BAD_CAST( "//cmis:allowableActions" ), xpathCtx );
-             if ( xpathObj && xpathObj->nodesetval && xpathObj->nodesetval->nodeNr > 0 )
-             {
--                xmlNodePtr node = xpathObj->nodesetval->nodeTab[0];
--                m_allowableActions.reset( new libcmis::AllowableActions( node ) );
-+                xmlNodePtr actionsNode = xpathObj->nodesetval->nodeTab[0];
-+                m_allowableActions.reset( new libcmis::AllowableActions( actionsNode ) );
-             }
-             xmlXPathFreeObject( xpathObj );
- 
-@@ -109,8 +109,8 @@ namespace libcmis
-                 int size = xpathObj->nodesetval->nodeNr;
-                 for ( int i = 0; i < size; i++ )
-                 {
--                    xmlNodePtr node = xpathObj->nodesetval->nodeTab[i];
--                    libcmis::PropertyPtr property = libcmis::parseProperty( node, getTypeDescription( ) );
-+                    xmlNodePtr propertyNode = xpathObj->nodesetval->nodeTab[i];
-+                    libcmis::PropertyPtr property = libcmis::parseProperty( propertyNode, getTypeDescription( ) );
-                     if ( property.get( ) )
-                         m_properties[ property->getPropertyType( )->getId() ] = property;
-                 }
-diff --git src/libcmis/ws-requests.cxx src/libcmis/ws-requests.cxx
-index 2b421b2..e13ae07 100644
---- src/libcmis/ws-requests.cxx
-+++ src/libcmis/ws-requests.cxx
-@@ -105,7 +105,7 @@
-     string content( buf, size );
-     delete[ ] buf;
- 
--    xmlTextWriterWriteFormatElement( writer, BAD_CAST( "cmism:length" ), "%ld", content.size( ) );
-+    xmlTextWriterWriteFormatElement( writer, BAD_CAST( "cmism:length" ), "%ld", (long int) content.size( ) );
-     xmlTextWriterWriteElement( writer, BAD_CAST( "cmism:mimeType" ), BAD_CAST( contentType.c_str( ) ) );
-     if ( !filename.empty( ) )
-         xmlTextWriterWriteElement( writer, BAD_CAST( "cmism:filename" ), BAD_CAST( filename.c_str( ) ) );
-@@ -349,7 +349,7 @@ void UpdateProperties::toXml( xmlTextWriterPtr writer )
-     xmlTextWriterEndElement( writer );
- }
- 
--SoapResponsePtr UpdatePropertiesResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* session )
-+SoapResponsePtr UpdatePropertiesResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* )
- {
-     UpdatePropertiesResponse* response = new UpdatePropertiesResponse( );
- 
-@@ -425,7 +425,7 @@ void DeleteTree::toXml( xmlTextWriterPtr writer )
-     xmlTextWriterEndElement( writer );
- }
- 
--SoapResponsePtr DeleteTreeResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* session )
-+SoapResponsePtr DeleteTreeResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* )
- {
-     DeleteTreeResponse* response = new DeleteTreeResponse( );
- 
-@@ -624,7 +624,7 @@ void CreateFolder::toXml( xmlTextWriterPtr writer )
-     xmlTextWriterEndElement( writer );
- }
- 
--SoapResponsePtr CreateFolderResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* session )
-+SoapResponsePtr CreateFolderResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* )
- {
-     CreateFolderResponse* response = new CreateFolderResponse( );
- 
diff --git a/libcmis/libcmis-0.3.0-win.patch b/libcmis/libcmis-0.3.0-win.patch
deleted file mode 100644
index e9110d2..0000000
--- a/libcmis/libcmis-0.3.0-win.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git src/libcmis/ws-objectservice.cxx src/libcmis/ws-objectservice.cxx
-index df624de..5134d8e 100644
---- src/libcmis/ws-objectservice.cxx
-+++ src/libcmis/ws-objectservice.cxx
-@@ -119,7 +119,7 @@ libcmis::ObjectPtr ObjectService::updateProperties(
- 
- void ObjectService::deleteObject( string repoId, string id, bool allVersions ) throw ( libcmis::Exception )
- {
--    DeleteObject request( repoId, id, allVersions );
-+    class DeleteObject request( repoId, id, allVersions );
-     m_session->soapRequest( m_url, request );
- }
-         
-diff --git src/libcmis/ws-requests.hxx src/libcmis/ws-requests.hxx
-index 88fe5b9..6de94b8 100644
---- src/libcmis/ws-requests.hxx
-+++ src/libcmis/ws-requests.hxx
-@@ -202,6 +202,7 @@ class GetTypeChildrenResponse : public SoapResponse
-         std::vector< libcmis::ObjectTypePtr > getChildren( ) { return m_children; }
- };
- 
-+#undef GetObject
- class GetObject : public SoapRequest
- {
-     private:
diff --git a/libcmis/libcmis-0.3.0.patch b/libcmis/libcmis-0.3.0.patch
deleted file mode 100644
index 37644c8..0000000
--- a/libcmis/libcmis-0.3.0.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-diff --git src/libcmis/ws-soap.cxx src/libcmis/ws-soap.cxx
-index e8efd67..decb79a 100644
---- src/libcmis/ws-soap.cxx
-+++ src/libcmis/ws-soap.cxx
-@@ -279,7 +279,7 @@ string SoapRequest::createEnvelope( string& username, string& password )
-     boost::posix_time::ptime expires( created );
-     expires = expires + boost::gregorian::days( 1 );
-     string createdStr = libcmis::writeDateTime( created );
--    xmlChar* expiresStr = BAD_CAST( libcmis::writeDateTime( expires ).c_str( ) );
-+    string expiresStr = libcmis::writeDateTime( expires );
- 
-     xmlTextWriterStartElement( writer, BAD_CAST( "S:Envelope" ) );
-     xmlTextWriterWriteAttribute( writer, BAD_CAST( "xmlns:S" ), BAD_CAST( NS_SOAP_ENV_URL ) );
-@@ -296,7 +296,7 @@ string SoapRequest::createEnvelope( string& username, string& password )
-     xmlTextWriterWriteRaw( writer, BAD_CAST( createdStr.c_str( ) ) );
-     xmlTextWriterEndElement( writer ); // End of Created
-     xmlTextWriterStartElement( writer, BAD_CAST( "wsse:Expires" ) );
--    xmlTextWriterWriteRaw( writer, expiresStr );
-+    xmlTextWriterWriteRaw( writer, BAD_CAST( expiresStr.c_str() ) );
-     xmlTextWriterEndElement( writer ); // End of Expires
-     xmlTextWriterEndElement( writer ); // End of Timestamp
- 
-diff --git src/libcmis/document.cxx src/libcmis/document.cxx
-index 7c2a8e6..e7014cb 100644
---- src/libcmis/document.cxx
-+++ src/libcmis/document.cxx
-@@ -78,7 +78,7 @@ namespace libcmis
-     {
-         long contentLength = 0;
-         map< string, libcmis::PropertyPtr >::const_iterator it = getProperties( ).find( string( "cmis:contentStreamLength" ) );
--        if ( it != getProperties( ).end( ) && !it->second->getStrings( ).empty( ) )
-+        if ( it != getProperties( ).end( ) && !it->second->getLongs( ).empty( ) )
-             contentLength = it->second->getLongs( ).front( );
-         return contentLength;
-     }


More information about the Libreoffice-commits mailing list