diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-04-09 21:02:31 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-04-09 21:02:31 +0200 |
commit | 71b681bbf0f5189cd87a6cea66ef51667223f54a (patch) | |
tree | f5da2eb9d76010efcf5abd875edd39c812b62bd7 /src/server/bnetserver | |
parent | 6c374c56b2bd06923ae738b19ca6a4257e29d863 (diff) |
Core/Network: Move to separate project
Diffstat (limited to 'src/server/bnetserver')
-rw-r--r-- | src/server/bnetserver/REST/LoginHttpSession.cpp | 18 | ||||
-rw-r--r-- | src/server/bnetserver/REST/LoginHttpSession.h | 8 | ||||
-rw-r--r-- | src/server/bnetserver/REST/LoginRESTService.cpp | 2 |
3 files changed, 24 insertions, 4 deletions
diff --git a/src/server/bnetserver/REST/LoginHttpSession.cpp b/src/server/bnetserver/REST/LoginHttpSession.cpp index 23a317d3726..bd8afdbcf2f 100644 --- a/src/server/bnetserver/REST/LoginHttpSession.cpp +++ b/src/server/bnetserver/REST/LoginHttpSession.cpp @@ -83,7 +83,7 @@ public: // build initializer chain boost::container::static_vector<std::shared_ptr<Trinity::Net::SocketConnectionInitializer>, 4> initializers; - initializers.stable_emplace_back(std::make_shared<Trinity::Net::IpBanCheckConnectionInitializer<BaseSocket>>(this)); + initializers.stable_emplace_back(std::make_shared<Trinity::Net::IpBanCheckConnectionInitializer<Battlenet::LoginHttpSession>>(&_owner)); if constexpr (std::is_same_v<BaseSocket, Trinity::Net::Http::SslSocket>) initializers.stable_emplace_back(std::make_shared<Trinity::Net::SslHandshakeConnectionInitializer<BaseSocket>>(this)); @@ -124,10 +124,26 @@ LoginHttpSession::LoginHttpSession(Trinity::Net::IoContextTcpSocket&& socket) { } +LoginHttpSession::~LoginHttpSession() = default; + void LoginHttpSession::Start() { TC_LOG_TRACE("server.http.session", "{} Accepted connection", GetClientInfo()); return _socket->Start(); } + +bool LoginHttpSession::Update() +{ + if (!_socket->Update()) + return false; + + _queryProcessor.ProcessReadyCallbacks(); + return true; +} + +void LoginHttpSession::QueueQuery(QueryCallback&& queryCallback) +{ + _queryProcessor.AddCallback(std::move(queryCallback)); +} } diff --git a/src/server/bnetserver/REST/LoginHttpSession.h b/src/server/bnetserver/REST/LoginHttpSession.h index c15442f9e0c..9690b02f14a 100644 --- a/src/server/bnetserver/REST/LoginHttpSession.h +++ b/src/server/bnetserver/REST/LoginHttpSession.h @@ -18,7 +18,9 @@ #ifndef TRINITYCORE_LOGIN_HTTP_SESSION_H #define TRINITYCORE_LOGIN_HTTP_SESSION_H +#include "AsyncCallbackProcessor.h" #include "BaseHttpSocket.h" +#include "DatabaseEnvFwd.h" #include "SRP6.h" namespace Battlenet @@ -34,20 +36,22 @@ public: static constexpr std::string_view SESSION_ID_COOKIE = "JSESSIONID="; explicit LoginHttpSession(Trinity::Net::IoContextTcpSocket&& socket); + ~LoginHttpSession(); void Start() override; - bool Update() override { return _socket->Update(); } + bool Update() override; boost::asio::ip::address const& GetRemoteIpAddress() const override { return _socket->GetRemoteIpAddress(); } bool IsOpen() const override { return _socket->IsOpen(); } void CloseSocket() override { return _socket->CloseSocket(); } void SendResponse(Trinity::Net::Http::RequestContext& context) override { return _socket->SendResponse(context); } - void QueueQuery(QueryCallback&& queryCallback) override { return _socket->QueueQuery(std::move(queryCallback)); } + void QueueQuery(QueryCallback&& queryCallback); std::string GetClientInfo() const override { return _socket->GetClientInfo(); } LoginSessionState* GetSessionState() const override { return static_cast<LoginSessionState*>(_socket->GetSessionState()); } private: std::shared_ptr<Trinity::Net::Http::AbstractSocket> _socket; + QueryCallbackProcessor _queryProcessor; }; } diff --git a/src/server/bnetserver/REST/LoginRESTService.cpp b/src/server/bnetserver/REST/LoginRESTService.cpp index 1afcc5c88bb..2cb804b4307 100644 --- a/src/server/bnetserver/REST/LoginRESTService.cpp +++ b/src/server/bnetserver/REST/LoginRESTService.cpp @@ -80,7 +80,7 @@ bool LoginRESTService::StartNetwork(Trinity::Asio::IoContext& ioContext, std::st using namespace std::string_literals; std::array<std::string, 2> configKeys = { { "LoginREST.ExternalAddress"s, "LoginREST.LocalAddress"s } }; - Trinity::Asio::Resolver resolver(ioContext); + Trinity::Net::Resolver resolver(ioContext); for (std::size_t i = 0; i < _hostnames.size(); ++i) { |