rippled
Loading...
Searching...
No Matches
WorkSSL.cpp
1#include <xrpld/app/misc/detail/WorkSSL.h>
2
3namespace xrpl {
4namespace detail {
5
7 std::string const& host,
8 std::string const& path,
9 std::string const& port,
10 boost::asio::io_context& ios,
12 Config const& config,
13 endpoint_type const& lastEndpoint,
14 bool lastStatus,
16 : WorkBase(host, path, port, ios, lastEndpoint, lastStatus, cb)
17 , context_(
18 config.SSL_VERIFY_DIR,
19 config.SSL_VERIFY_FILE,
20 config.SSL_VERIFY,
21 j,
22 boost::asio::ssl::context::tlsv12_client)
23 , stream_(socket_, context_.context())
24{
26 if (ec)
27 Throw<std::runtime_error>(boost::str(boost::format("preConnectVerify: %s") % ec.message()));
28}
29
30void
32{
33 auto err = ec ? ec : context_.postConnectVerify(stream_, host_);
34 if (err)
35 return fail(err);
36
37 stream_.async_handshake(
38 boost::asio::ssl::stream_base::client,
39 boost::asio::bind_executor(
40 strand_, std::bind(&WorkSSL::onHandshake, shared_from_this(), std::placeholders::_1)));
41}
42
43void
45{
46 if (ec)
47 return fail(ec);
48
49 onStart();
50}
51
52} // namespace detail
53
54} // namespace xrpl
T bind(T... args)
A generic endpoint for log messages.
Definition Journal.h:41
boost::system::error_code preConnectVerify(T &strm, std::string const &host)
invoked before connect/async_connect on an ssl stream to setup name verification.
boost::system::error_code postConnectVerify(T &strm, std::string const &host)
invoked after connect/async_connect but before sending data on an ssl stream - to setup name verifica...
void fail(error_code const &ec)
Definition WorkBase.h:163
boost::asio::ip::tcp::endpoint endpoint_type
Definition WorkBase.h:25
boost::system::error_code error_code
Definition WorkBase.h:24
boost::asio::strand< boost::asio::io_context::executor_type > strand_
Definition WorkBase.h:41
WorkSSL(std::string const &host, std::string const &path, std::string const &port, boost::asio::io_context &ios, beast::Journal j, Config const &config, endpoint_type const &lastEndpoint, bool lastStatus, callback_type cb)
Definition WorkSSL.cpp:6
HTTPClientSSLContext context_
Definition WorkSSL.h:27
void onConnect(error_code const &ec)
Definition WorkSSL.cpp:31
void onHandshake(error_code const &ec)
Definition WorkSSL.cpp:44
stream_type stream_
Definition WorkSSL.h:28
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition algorithm.h:6