3#include <xrpld/overlay/Peer.h>
4#include <xrpld/overlay/detail/OverlayImpl.h>
17 using request_type = boost::beast::http::request<boost::beast::http::empty_body>;
18 using response_type = boost::beast::http::response<boost::beast::http::dynamic_body>;
31 boost::asio::strand<boost::asio::io_context::executor_type>
strand_;
32 boost::asio::basic_waitable_timer<std::chrono::steady_clock>
timer_;
44 boost::asio::io_context& ioContext,
87 template <
class =
void>
88 static boost::asio::ip::tcp::endpoint
96 ec = boost::system::errc::make_error_code(boost::system::errc::invalid_argument);
97 return boost::asio::ip::tcp::endpoint{};
A version-independent IP address and port combination.
A generic endpoint for log messages.
Wraps a Journal::Sink to prefix its output with a string.
boost::system::error_code error_code
boost::beast::ssl_stream< middle_type > stream_type
void fail(std::string const &reason)
boost::asio::basic_waitable_timer< std::chrono::steady_clock > timer_
boost::beast::http::request< boost::beast::http::empty_body > request_type
boost::beast::multi_buffer readBuf_
boost::asio::strand< boost::asio::io_context::executor_type > strand_
static boost::asio::ip::tcp::endpoint parseEndpoint(std::string const &s, boost::system::error_code &ec)
std::shared_ptr< boost::asio::ssl::context > shared_context
~ConnectAttempt() override
boost::beast::tcp_stream middle_type
void onRead(error_code ec)
endpoint_type remoteEndpoint_
void onConnect(error_code ec)
ConnectAttempt(Application &app, boost::asio::io_context &ioContext, endpoint_type remoteEndpoint, Resource::Consumer usage, shared_context const &context, Peer::id_t id, std::shared_ptr< PeerFinder::Slot > const &slot, beast::Journal journal, OverlayImpl &overlay)
void onShutdown(error_code ec)
std::shared_ptr< PeerFinder::Slot > slot_
boost::asio::ip::tcp::socket socket_type
std::unique_ptr< stream_type > streamPtr_
boost::asio::ip::tcp::endpoint endpoint_type
void onHandshake(error_code ec)
Resource::Consumer usage_
boost::beast::http::response< boost::beast::http::dynamic_body > response_type
beast::Journal const journal_
void onWrite(error_code ec)
void onTimer(error_code ec)
std::uint32_t id_t
Uniquely identifies a peer.
An endpoint that consumes resources.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
static boost::asio::ip::tcp::endpoint toAsioEndpoint(IP::Endpoint const &address)