diff --git a/src/security/tls/tls_connection.cpp b/src/security/tls/tls_connection.cpp index 7bdb15c8..5d4b54a5 100644 --- a/src/security/tls/tls_connection.cpp +++ b/src/security/tls/tls_connection.cpp @@ -132,8 +132,9 @@ namespace libp2p::connection { auto &&result) { if (ec) { SL_DEBUG(log(), "connection async op error {}", ec); + cb(ec); std::ignore = conn->close(); - return cb(ec); + return; } cb(std::forward(result)); }; diff --git a/src/transport/tcp/tcp_connection.cpp b/src/transport/tcp/tcp_connection.cpp index 6aa317de..dab82387 100644 --- a/src/transport/tcp/tcp_connection.cpp +++ b/src/transport/tcp/tcp_connection.cpp @@ -95,8 +95,9 @@ namespace libp2p::transport { auto result) { if (auto self = wptr.lock()) { if (ec) { + cb(ec); self->close(ec); - return cb(ec); + return; } TRACE("{} {}", self->str(), result); cb(result);