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 @@
+
+ --proxy url
+
+
+ Use url as the HTTP proxy.
+ Setting this value will override the system proxy settings.
+
+
+
+
+ --proxy-username login
+
+
+ Use login to authenticate on the HTTP proxy.
+
+
+
+
+ --proxy-password secret
+
+
+ Use secret to authenticate on the HTTP proxy.
+
+
+
+
+ --noproxy list
+
+
+ Proxy settings won't apply to hostnames and domain names listed
+ in list.
+ This value is a coma separated list.
+
+
+
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
#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( );