Fix a crash when botan policy does not allow any available ciphersuite

This commit is contained in:
louiz’
2018-04-28 13:57:40 +02:00
parent f481e2f194
commit d887baa064
2 changed files with 17 additions and 4 deletions
+6
View File
@@ -1,3 +1,9 @@
Version 7.3
===========
- Fix an uncaught exception with botan, when policy does not allow any
available ciphersuite.
Version 7.2 - 2018-01-24 Version 7.2 - 2018-01-24
======================== ========================
+11 -4
View File
@@ -146,15 +146,22 @@ void TCPClientSocketHandler::connect(const std::string& address, const std::stri
|| errno == EISCONN) || errno == EISCONN)
{ {
log_info("Connection success."); log_info("Connection success.");
#ifdef BOTAN_FOUND
if (this->use_tls)
try {
this->start_tls(this->address, this->port);
} catch (const Botan::Exception& e)
{
this->on_connection_failed("TLS error: "s + e.what());
this->close();
return ;
}
#endif
TimedEventsManager::instance().cancel("connection_timeout" + TimedEventsManager::instance().cancel("connection_timeout" +
std::to_string(this->socket)); std::to_string(this->socket));
this->poller->add_socket_handler(this); this->poller->add_socket_handler(this);
this->connected = true; this->connected = true;
this->connecting = false; this->connecting = false;
#ifdef BOTAN_FOUND
if (this->use_tls)
this->start_tls(this->address, this->port);
#endif
this->connection_date = std::chrono::system_clock::now(); this->connection_date = std::chrono::system_clock::now();
// Get our local TCP port and store it // Get our local TCP port and store it