aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared')
-rw-r--r--src/server/shared/Networking/SslSocket.h17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/server/shared/Networking/SslSocket.h b/src/server/shared/Networking/SslSocket.h
index 3ab76d235dd..e00b1b6b65e 100644
--- a/src/server/shared/Networking/SslSocket.h
+++ b/src/server/shared/Networking/SslSocket.h
@@ -24,11 +24,11 @@
namespace boostssl = boost::asio::ssl;
-template<class SslContext>
+template<class SslContext, class Stream = boostssl::stream<boost::asio::ip::tcp::socket>>
class SslSocket
{
public:
- explicit SslSocket(boost::asio::ip::tcp::socket&& socket) : _socket(std::move(socket)), _sslSocket(_socket, SslContext::instance())
+ explicit SslSocket(boost::asio::ip::tcp::socket&& socket) : _sslSocket(std::move(socket), SslContext::instance())
{
_sslSocket.set_verify_mode(boostssl::verify_none);
}
@@ -36,13 +36,13 @@ public:
// adapting tcp::socket api
void close(boost::system::error_code& error)
{
- _socket.close(error);
+ _sslSocket.lowest_layer().close(error);
}
void shutdown(boost::asio::socket_base::shutdown_type what, boost::system::error_code& shutdownError)
{
_sslSocket.shutdown(shutdownError);
- _socket.shutdown(what, shutdownError);
+ _sslSocket.lowest_layer().shutdown(what, shutdownError);
}
template<typename MutableBufferSequence, typename ReadHandlerType>
@@ -66,12 +66,12 @@ public:
template<typename SettableSocketOption>
void set_option(SettableSocketOption const& option, boost::system::error_code& error)
{
- _socket.set_option(option, error);
+ _sslSocket.lowest_layer().set_option(option, error);
}
boost::asio::ip::tcp::socket::endpoint_type remote_endpoint() const
{
- return _socket.remote_endpoint();
+ return _sslSocket.lowest_layer().remote_endpoint();
}
// ssl api
@@ -81,9 +81,8 @@ public:
_sslSocket.async_handshake(type, std::move(handler));
}
-private:
- boost::asio::ip::tcp::socket _socket;
- boostssl::stream<boost::asio::ip::tcp::socket&> _sslSocket;
+protected:
+ Stream _sslSocket;
};
#endif // SslSocket_h__