From 44479c910ecc89304fccea98b0ce0bed5d3e3801 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 26 Sep 2013 00:55:18 +0900 Subject: [PATCH] Log exception; throw error if loading private key and/or certificate failed --- src/MultiUrlRequestInfo.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/MultiUrlRequestInfo.cc b/src/MultiUrlRequestInfo.cc index 6e5edd37..395ea692 100644 --- a/src/MultiUrlRequestInfo.cc +++ b/src/MultiUrlRequestInfo.cc @@ -188,8 +188,12 @@ int MultiUrlRequestInfo::prepare() // We set server TLS context to the SocketCore before creating // DownloadEngine instance. std::shared_ptr svTlsContext(TLSContext::make(TLS_SERVER)); - svTlsContext->addCredentialFile(option_->get(PREF_RPC_CERTIFICATE), - option_->get(PREF_RPC_PRIVATE_KEY)); + if(!svTlsContext->addCredentialFile + (option_->get(PREF_RPC_CERTIFICATE), + option_->get(PREF_RPC_PRIVATE_KEY))) { + throw DL_ABORT_EX("Loading private key and/or certificate for secure " + "RPC failed."); + } SocketCore::setServerTLSContext(svTlsContext); } #endif // ENABLE_SSL @@ -285,6 +289,7 @@ int MultiUrlRequestInfo::prepare() } e_->getRequestGroupMan()->getNetStat().downloadStart(); } catch(RecoverableException& e) { + A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, e); SingletonHolder::clear(); if(useSignalHandler_) { resetSignalHandlers();