20 #include <ripple/net/HTTPStream.h>
26 boost::asio::io_service::strand& strand,
28 : ssl_ctx_(config, j,
boost::asio::ssl::context::tlsv12_client)
33 boost::asio::ip::tcp::socket&
45 boost::asio::yield_context& yield)
48 using namespace boost::beast;
50 boost::system::error_code ec;
52 auto fail = [&errorOut](
std::string const& errorIn) {
57 ip::tcp::resolver resolver{
strand_.context()};
58 auto const endpoints = resolver.async_resolve(host, port, yield[ec]);
60 return fail(
"async_resolve");
73 return fail(
"preConnectVerify");
75 boost::asio::async_connect(
76 stream_->next_layer(), endpoints.begin(), endpoints.end(), yield[ec]);
78 return fail(
"async_connect");
82 return fail(
"postConnectVerify");
84 stream_->async_handshake(ssl::stream_base::client, yield[ec]);
86 return fail(
"async_handshake");
94 boost::asio::yield_context& yield,
95 boost::system::error_code& ec)
97 boost::beast::http::async_write(*
stream_, req, yield[ec]);
102 boost::beast::flat_buffer& buf,
105 boost::asio::yield_context& yield,
106 boost::system::error_code& ec)
109 boost::beast::http::async_read_some(*
stream_, buf, p, yield[ec]);
111 boost::beast::http::async_read(*
stream_, buf, p, yield[ec]);
116 boost::asio::io_service::strand& strand,
122 boost::asio::ip::tcp::socket&
134 boost::asio::yield_context& yield)
137 using namespace boost::beast;
139 boost::system::error_code ec;
141 auto fail = [&errorOut](
std::string const& errorIn) {
146 ip::tcp::resolver resolver{
strand_.context()};
147 auto const endpoints = resolver.async_resolve(host, port, yield[ec]);
149 return fail(
"async_resolve");
160 boost::asio::async_connect(
161 *
stream_, endpoints.begin(), endpoints.end(), yield[ec]);
163 return fail(
"async_connect");
171 boost::asio::yield_context& yield,
172 boost::system::error_code& ec)
174 boost::beast::http::async_write(*
stream_, req, yield[ec]);
179 boost::beast::flat_buffer& buf,
182 boost::asio::yield_context& yield,
183 boost::system::error_code& ec)
186 boost::beast::http::async_read_some(*
stream_, buf, p, yield[ec]);
188 boost::beast::http::async_read(*
stream_, buf, p, yield[ec]);