diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-12-16 20:02:20 +0100 |
---|---|---|
committer | funjoker <funjoker109@gmail.com> | 2023-12-19 14:14:48 +0100 |
commit | 5d6896de598283e00b70885868423eb72e9a53ca (patch) | |
tree | adb668aa3b518931ce02b789ad156417ebc35919 | |
parent | e0d45f6dff3afe5caa38c48646f23d966c8c03a1 (diff) |
Core/Misc: Minor refactors in BaseEncoding and SslSocket to prepare for future bnetserver changes
(cherry picked from commit 5f00ac4b2bf2d47ea24a93c362737fe904456d2e)
-rw-r--r-- | src/common/Encoding/Base32.cpp | 2 | ||||
-rw-r--r-- | src/common/Encoding/Base32.h | 3 | ||||
-rw-r--r-- | src/common/Encoding/Base64.cpp | 2 | ||||
-rw-r--r-- | src/common/Encoding/Base64.h | 3 | ||||
-rw-r--r-- | src/common/Encoding/BaseEncoding.h | 3 | ||||
-rw-r--r-- | src/server/shared/Networking/SslSocket.h | 17 |
6 files changed, 16 insertions, 14 deletions
diff --git a/src/common/Encoding/Base32.cpp b/src/common/Encoding/Base32.cpp index a091ed1ca18..9ed27831791 100644 --- a/src/common/Encoding/Base32.cpp +++ b/src/common/Encoding/Base32.cpp @@ -49,7 +49,7 @@ struct B32Impl return Trinity::Impl::GenericBaseEncoding<B32Impl>::Encode(data); } -/*static*/ Optional<std::vector<uint8>> Trinity::Encoding::Base32::Decode(std::string const& data) +/*static*/ Optional<std::vector<uint8>> Trinity::Encoding::Base32::Decode(std::string_view data) { return Trinity::Impl::GenericBaseEncoding<B32Impl>::Decode(data); } diff --git a/src/common/Encoding/Base32.h b/src/common/Encoding/Base32.h index 23705ddfebb..17daa7a0ab3 100644 --- a/src/common/Encoding/Base32.h +++ b/src/common/Encoding/Base32.h @@ -21,6 +21,7 @@ #include "Define.h" #include "Optional.h" #include <string> +#include <string_view> #include <vector> namespace Trinity @@ -30,7 +31,7 @@ namespace Encoding struct TC_COMMON_API Base32 { static std::string Encode(std::vector<uint8> const& data); - static Optional<std::vector<uint8>> Decode(std::string const& data); + static Optional<std::vector<uint8>> Decode(std::string_view data); }; } } diff --git a/src/common/Encoding/Base64.cpp b/src/common/Encoding/Base64.cpp index 1b1860375e8..84ab5687f82 100644 --- a/src/common/Encoding/Base64.cpp +++ b/src/common/Encoding/Base64.cpp @@ -51,7 +51,7 @@ struct B64Impl return Trinity::Impl::GenericBaseEncoding<B64Impl>::Encode(data); } -/*static*/ Optional<std::vector<uint8>> Trinity::Encoding::Base64::Decode(std::string const& data) +/*static*/ Optional<std::vector<uint8>> Trinity::Encoding::Base64::Decode(std::string_view data) { return Trinity::Impl::GenericBaseEncoding<B64Impl>::Decode(data); } diff --git a/src/common/Encoding/Base64.h b/src/common/Encoding/Base64.h index 43ef5da65e4..0d78eb6088e 100644 --- a/src/common/Encoding/Base64.h +++ b/src/common/Encoding/Base64.h @@ -21,6 +21,7 @@ #include "Define.h" #include "Optional.h" #include <string> +#include <string_view> #include <vector> namespace Trinity @@ -30,7 +31,7 @@ namespace Encoding struct TC_COMMON_API Base64 { static std::string Encode(std::vector<uint8> const& data); - static Optional<std::vector<uint8>> Decode(std::string const& data); + static Optional<std::vector<uint8>> Decode(std::string_view data); }; } } diff --git a/src/common/Encoding/BaseEncoding.h b/src/common/Encoding/BaseEncoding.h index 7dfe3fd4993..b0f527ea2af 100644 --- a/src/common/Encoding/BaseEncoding.h +++ b/src/common/Encoding/BaseEncoding.h @@ -22,6 +22,7 @@ #include "Optional.h" #include <numeric> #include <string> +#include <string_view> #include <vector> namespace Trinity @@ -100,7 +101,7 @@ struct GenericBaseEncoding return s; } - static Optional<std::vector<uint8>> Decode(std::string const& data) + static Optional<std::vector<uint8>> Decode(std::string_view data) { auto it = data.begin(), end = data.end(); if (it == end) 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__ |