aboutsummaryrefslogtreecommitdiff
path: root/src/server/authserver/Server/AuthSession.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/authserver/Server/AuthSession.h')
-rw-r--r--src/server/authserver/Server/AuthSession.h17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/server/authserver/Server/AuthSession.h b/src/server/authserver/Server/AuthSession.h
index 06c1b79bf3e..d1063f0d493 100644
--- a/src/server/authserver/Server/AuthSession.h
+++ b/src/server/authserver/Server/AuthSession.h
@@ -30,8 +30,8 @@
using boost::asio::ip::tcp;
+class AuthHandlerTable;
class ByteBuffer;
-struct AuthHandler;
enum eAuthCmd : uint8;
enum AuthStatus
@@ -41,6 +41,7 @@ enum AuthStatus
STATUS_RECONNECT_PROOF,
STATUS_AUTHED,
STATUS_WAITING_FOR_REALM_LIST,
+ STATUS_XFER,
STATUS_CLOSED
};
@@ -64,8 +65,6 @@ class AuthSession : public Socket<AuthSession>
typedef Socket<AuthSession> AuthSocket;
public:
- static consteval std::array<AuthHandler, 10> InitHandlers();
-
AuthSession(tcp::socket&& socket);
void Start() override;
@@ -77,11 +76,15 @@ protected:
void ReadHandler() override;
private:
+ friend AuthHandlerTable;
bool HandleLogonChallenge();
bool HandleLogonProof();
bool HandleReconnectChallenge();
bool HandleReconnectProof();
bool HandleRealmList();
+ bool HandleXferAccept();
+ bool HandleXferResume();
+ bool HandleXferCancel();
void CheckIpCallback(PreparedQueryResult result);
void LogonChallengeCallback(PreparedQueryResult result);
@@ -107,12 +110,4 @@ private:
QueryCallbackProcessor _queryProcessor;
};
-struct AuthHandler
-{
- eAuthCmd cmd;
- AuthStatus status;
- size_t packetSize;
- bool (AuthSession::*handler)();
-};
-
#endif