void session::handle_is_pending(bool pending, channel::ptr channel, result_handler handle_started) { if (pending) { log::debug(LOG_NETWORK) << "Rejected connection from [" << channel->authority() << "] as loopback."; handle_started(error::accept_failed); return; } const auto version = channel->version(); if (version.value < bc::peer_minimum_version) { log::debug(LOG_NETWORK) << "Peer version (" << version.value << ") below minimum (" << bc::peer_minimum_version << ") [" << channel->authority() << "]"; handle_started(error::accept_failed); return; } network_.store(channel, handle_started); }
void session::handle_handshake(const code& ec, channel::ptr channel, result_handler handle_started) { if (ec) { log::debug(LOG_NETWORK) << "Failure in handshake with [" << channel->authority() << "] " << ec.message(); handle_started(ec); return; } truth_handler handler = BIND_3(handle_is_pending, _1, channel, handle_started); // The loopback test is for incoming channels only. if (incoming_) pending_.exists(channel->version().nonce, handler); else handler(false); }