git-svn-id: https://svn.middleware.georgetown.edu/cpp-xmltooling/trunk@302
de75baf8-a10c-0410-a50a-
987c0e22f00f
ChainingTrustEngine::ChainingTrustEngine(const DOMElement* e) : OpenSSLTrustEngine(e) {
Category& log=Category::getInstance(XMLTOOLING_LOGCAT".TrustEngine");
ChainingTrustEngine::ChainingTrustEngine(const DOMElement* e) : OpenSSLTrustEngine(e) {
Category& log=Category::getInstance(XMLTOOLING_LOGCAT".TrustEngine");
- try {
- e = e ? XMLHelper::getFirstChildElement(e, _TrustEngine) : NULL;
- while (e) {
+ e = e ? XMLHelper::getFirstChildElement(e, _TrustEngine) : NULL;
+ while (e) {
+ try {
auto_ptr_char temp(e->getAttributeNS(NULL,type));
if (temp.get() && *temp.get()) {
log.info("building TrustEngine of type %s", temp.get());
auto_ptr_char temp(e->getAttributeNS(NULL,type));
if (temp.get() && *temp.get()) {
log.info("building TrustEngine of type %s", temp.get());
- m_engines.push_back(XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(temp.get(), e));
+ TrustEngine* engine = XMLToolingConfig::getConfig().TrustEngineManager.newPlugin(temp.get(), e);
+ m_engines.push_back(engine);
- e = XMLHelper::getNextSiblingElement(e, _TrustEngine);
- }
- catch (exception&) {
- for_each(m_engines.begin(), m_engines.end(), xmltooling::cleanup<TrustEngine>());
- throw;
+ catch (exception& ex) {
+ log.error("error building TrustEngine: %s", ex.what());
+ }
+ e = XMLHelper::getNextSiblingElement(e, _TrustEngine);