TrinityCore
Loading...
Searching...
No Matches
LoginHttpSession.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef TRINITYCORE_LOGIN_HTTP_SESSION_H
19#define TRINITYCORE_LOGIN_HTTP_SESSION_H
20
22#include "BaseHttpSocket.h"
23#include "DatabaseEnvFwd.h"
24#include "SRP6.h"
25
26namespace Battlenet
27{
29{
30 std::unique_ptr<Trinity::Crypto::SRP::BnetSRP6Base> Srp;
31};
32
33class LoginHttpSession final : public Trinity::Net::Http::AbstractSocket, public std::enable_shared_from_this<LoginHttpSession>
34{
35public:
36 static constexpr std::string_view SESSION_ID_COOKIE = "JSESSIONID=";
37
40
41 void Start() override;
42 bool Update() override;
43 boost::asio::ip::address const& GetRemoteIpAddress() const override { return _socket->GetRemoteIpAddress(); }
44 bool IsOpen() const override { return _socket->IsOpen(); }
45 void CloseSocket() override { return _socket->CloseSocket(); }
46
47 void SendResponse(Trinity::Net::Http::RequestContext& context) override { return _socket->SendResponse(context); }
48 void QueueQuery(QueryCallback&& queryCallback);
49 std::string GetClientInfo() const override { return _socket->GetClientInfo(); }
50 LoginSessionState* GetSessionState() const override { return static_cast<LoginSessionState*>(_socket->GetSessionState()); }
51
52private:
53 std::shared_ptr<Trinity::Net::Http::AbstractSocket> _socket;
55};
56}
57
58#endif // TRINITYCORE_LOGIN_HTTP_SESSION_H
static constexpr std::string_view SESSION_ID_COOKIE
void QueueQuery(QueryCallback &&queryCallback)
bool IsOpen() const override
std::string GetClientInfo() const override
std::shared_ptr< Trinity::Net::Http::AbstractSocket > _socket
void SendResponse(Trinity::Net::Http::RequestContext &context) override
QueryCallbackProcessor _queryProcessor
boost::asio::ip::address const & GetRemoteIpAddress() const override
LoginSessionState * GetSessionState() const override
boost::asio::basic_stream_socket< boost::asio::ip::tcp, boost::asio::io_context::executor_type > IoContextTcpSocket
Definition Socket.h:40
std::unique_ptr< Trinity::Crypto::SRP::BnetSRP6Base > Srp