X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2FXMLToolingConfig.cpp;h=bd7fbcbed25b998401c1236a4bdda9478c37cb50;hb=211d157271f527521d46875c1c220734f2fa1136;hp=fd6ce97cffb6ac5b48d26ac8860426fb8de965cd;hpb=6e600cf66d6bfad24ca17685e98d5d1da8385488;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/XMLToolingConfig.cpp b/xmltooling/XMLToolingConfig.cpp index fd6ce97..bd7fbcb 100644 --- a/xmltooling/XMLToolingConfig.cpp +++ b/xmltooling/XMLToolingConfig.cpp @@ -55,9 +55,7 @@ #endif #include -#include -#include -#include +#include #if defined(XMLTOOLING_LOG4SHIB) # include @@ -82,7 +80,6 @@ using namespace soap11; using namespace xmltooling::logging; using namespace xmltooling; using namespace xercesc; -using namespace boost::lambda; using namespace boost; using namespace std; @@ -114,14 +111,14 @@ using namespace xmlsignature; namespace { static XMLToolingInternalConfig g_config; #ifndef XMLTOOLING_NO_XMLSEC - static vector g_openssl_locks; + static ptr_vector g_openssl_locks; extern "C" void openssl_locking_callback(int mode,int n,const char *file,int line) { if (mode & CRYPTO_LOCK) - g_openssl_locks[n]->lock(); + g_openssl_locks[n].lock(); else - g_openssl_locks[n]->unlock(); + g_openssl_locks[n].unlock(); } # ifndef WIN32 @@ -297,7 +294,6 @@ XMLToolingInternalConfig::XMLToolingInternalConfig() : XMLToolingInternalConfig::~XMLToolingInternalConfig() { - delete m_lock; } bool XMLToolingInternalConfig::log_config(const char* config) @@ -359,7 +355,7 @@ bool XMLToolingInternalConfig::log_config(const char* config) #endif } catch (const ConfigureFailure& e) { - string msg = string("failed to configure logging: ") + e.what(); + string msg = string("error in file permissions or logging configuration: ") + e.what(); Category::getInstance(XMLTOOLING_LOGCAT".Logging").crit(msg); #ifdef WIN32 LogEvent(nullptr, EVENTLOG_ERROR_TYPE, 2100, nullptr, msg.c_str()); @@ -424,16 +420,9 @@ bool XMLToolingInternalConfig::init() m_parserPool=new ParserPool(); m_validatingPool=new ParserPool(true,true); - // Load catalogs from path. - if (!catalog_path.empty()) { - vector catpaths; - split(catpaths, catalog_path, is_any_of(PATH_SEPARATOR_STR), algorithm::token_compress_on); - for_each( - catpaths.begin(), catpaths.end(), - // Call loadCatalog with an inner call to s->c_str() on each entry. - lambda::bind(static_cast(&ParserPool::loadCatalog), m_validatingPool, lambda::bind(&string::c_str,_1)) - ); - } + // Load catalogs from deprecated path setting. + if (!catalog_path.empty()) + m_validatingPool->loadCatalogs(catalog_path.c_str()); // default registrations XMLObjectBuilder::registerDefaultBuilder(new UnknownElementBuilder()); @@ -520,7 +509,6 @@ void XMLToolingInternalConfig::term() #ifndef XMLTOOLING_NO_XMLSEC CRYPTO_set_locking_callback(nullptr); - for_each(g_openssl_locks.begin(), g_openssl_locks.end(), xmltooling::cleanup()); g_openssl_locks.clear(); #endif