# HG changeset patch # User David Demelier # Date 1511377265 -3600 # Node ID a95954e535890a081fc5334240571ea2d962e340 # Parent fd96de07657ade993e34f03a30dc90e71076c1cf Irccd: fix TLS tranports diff -r fd96de07657a -r a95954e53589 libirccd/irccd/transport_server.cpp --- a/libirccd/irccd/transport_server.cpp Wed Nov 22 19:32:56 2017 +0100 +++ b/libirccd/irccd/transport_server.cpp Wed Nov 22 20:01:05 2017 +0100 @@ -99,13 +99,10 @@ #if defined(HAVE_SSL) -void tls_transport_server::do_handshake(std::shared_ptr client, accept_t handler) +void tls_transport_server::do_handshake(std::shared_ptr client, accept_t handler) { - client->socket().async_handshake(boost::asio::ssl::stream_base::server, [client, handler] (auto code) { - if (code) - handler(nullptr, code); - else - handler(std::move(client), std::move(code)); + client->stream().socket().async_handshake(boost::asio::ssl::stream_base::server, [client, handler] (auto code) { + handler(std::move(code), std::move(client)); }); } @@ -117,11 +114,11 @@ void tls_transport_server::do_accept(accept_t handler) { - auto client = std::make_shared(*this, acceptor_.get_io_service(), context_); + auto client = std::make_shared(*this, acceptor_.get_io_service(), context_); - acceptor_.async_accept(client->socket().lowest_layer(), [this, client, handler] (auto code) { + acceptor_.async_accept(client->stream().socket().lowest_layer(), [this, client, handler] (auto code) { if (code) - handler(nullptr, code); + handler(std::move(code), nullptr); else do_handshake(std::move(client), std::move(handler)); }); diff -r fd96de07657a -r a95954e53589 libirccd/irccd/transport_server.hpp --- a/libirccd/irccd/transport_server.hpp Wed Nov 22 19:32:56 2017 +0100 +++ b/libirccd/irccd/transport_server.hpp Wed Nov 22 20:01:05 2017 +0100 @@ -216,13 +216,13 @@ * \brief Secure layer implementation. */ class tls_transport_server : public tcp_transport_server { -public: +private: using context_t = boost::asio::ssl::context; + using client_t = basic_transport_client>; -private: context_t context_; - void do_handshake(std::shared_ptr, accept_t); + void do_handshake(std::shared_ptr, accept_t); protected: /** diff -r fd96de07657a -r a95954e53589 libirccdctl/irccd/ctl/ip_connection.cpp --- a/libirccdctl/irccd/ctl/ip_connection.cpp Wed Nov 22 19:32:56 2017 +0100 +++ b/libirccdctl/irccd/ctl/ip_connection.cpp Wed Nov 22 20:01:05 2017 +0100 @@ -66,14 +66,14 @@ void tls_connection::handshake(connect_t handler) { - socket_.async_handshake(boost::asio::ssl::stream_base::client, [handler] (auto code) { + stream_.socket().async_handshake(boost::asio::ssl::stream_base::client, [handler] (auto code) { handler(code); }); } void tls_connection::connect(connect_t handler) { - do_resolve(host_, std::to_string(port_), socket_.lowest_layer(), resolver_, [handler, this] (auto code) { + do_resolve(host_, std::to_string(port_), stream_.socket().lowest_layer(), resolver_, [handler, this] (auto code) { if (code) handler(code); else