Commit 0f47d22e authored by Dominik Charousset's avatar Dominik Charousset

Close socket if SSL session initialization fails

parent 22ccaba0
......@@ -25,6 +25,7 @@
#include "caf/actor.hpp"
#include "caf/actor_proxy.hpp"
#include "caf/actor_system_config.hpp"
#include "caf/detail/socket_guard.hpp"
#include "caf/logger.hpp"
#include "caf/node_id.hpp"
#include "caf/sec.hpp"
......@@ -217,6 +218,7 @@ public:
return false;
auto& dm = acceptor_.backend();
auto fd = acceptor_.accepted_socket();
detail::socket_guard sguard{fd};
io::network::nonblocking(fd, true);
auto sssn = make_session(parent()->system(), fd, true);
if (sssn == nullptr) {
......@@ -226,7 +228,10 @@ public:
auto scrb = make_counted<scribe_impl>(dm, fd, std::move(sssn));
auto hdl = scrb->hdl();
parent()->add_scribe(std::move(scrb));
return doorman::new_connection(&dm, hdl);
auto result = doorman::new_connection(&dm, hdl);
if (result)
sguard.release();
return result;
}
};
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment