AuthServer: Difference between revisions
From OuroDev
No edit summary |
No edit summary |
||
Line 156: | Line 156: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Opcode | !Opcode | ||
!Structure | !Structure | ||
!AuthServer Function | |||
!DBServer Function | |||
|- | |- | ||
|SQ_ABOUT_TO_PLAY | |SQ_ABOUT_TO_PLAY | ||
|dsdddd | |||
|AccountDB::AboutToPlay / handleAboutToPlay | |AccountDB::AboutToPlay / handleAboutToPlay | ||
| | | | ||
|- | |- | ||
|SQ_KICK_ACCOUNT | |SQ_KICK_ACCOUNT | ||
|dcs | |||
|AccountDB::KickAccount / handleKickAccount | |AccountDB::KickAccount / handleKickAccount | ||
| | | | ||
|- | |- | ||
|SQ_SERVER_NUM | |SQ_SERVER_NUM | ||
| | |||
|RequestUserCounts / handleNumOnline | |RequestUserCounts / handleNumOnline | ||
| | | | ||
|- | |- | ||
|SQ_VERSION | |SQ_VERSION | ||
|sd(d) | |||
|CSocketServer::OnCreate / handleVersion | |CSocketServer::OnCreate / handleVersion | ||
| | | | ||
|- | |- | ||
|SQ_PING | |SQ_PING | ||
|d | |||
|ServerPing / handlePing | |ServerPing / handlePing | ||
| | | | ||
|- | |- | ||
|SQ_COMPLETE_USERLIST | |SQ_COMPLETE_USERLIST | ||
|d | |||
|ServerPlayUserList / handleCompleteUserList | |ServerPlayUserList / handleCompleteUserList | ||
| | | | ||
|- | |- | ||
|SQ_USER_DATA | |SQ_USER_DATA | ||
|db | |||
|ServerReadUserData / - | |ServerReadUserData / - | ||
| | | | ||
|- | |- | ||
|SQ_GAME_DATA | |SQ_GAME_DATA | ||
|db | |||
|ServerReadGameData / handleRecvGameData | |ServerReadGameData / handleRecvGameData | ||
| | | | ||
|} | |} | ||
</div> | </div> | ||
Line 200: | Line 209: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Opcode | !Opcode | ||
!Structure | !Structure | ||
!Game Function | |||
!AuthServer Function | |||
|- | |- | ||
|AQ_LOGIN | |AQ_LOGIN | ||
|dbdw(c) | |||
|<nowiki>- / LoginPacket</nowiki> | |<nowiki>- / LoginPacket</nowiki> | ||
| | | | ||
|- | |- | ||
|AQ_SERVER_LIST | |AQ_SERVER_LIST | ||
|ddc(c[d]) | |||
|<nowiki>- / DeprecatedPacket</nowiki> | |<nowiki>- / DeprecatedPacket</nowiki> | ||
| | | | ||
|- | |- | ||
|AQ_ABOUT_TO_PLAY | |AQ_ABOUT_TO_PLAY | ||
|ddc | |||
|acSendAboutToPlay / SelectServerPacket | |acSendAboutToPlay / SelectServerPacket | ||
| | | | ||
|- | |- | ||
|AQ_LOGOUT | |AQ_LOGOUT | ||
|dd | |||
|acSendLogout / LogoutPacket | |acSendLogout / LogoutPacket | ||
| | | | ||
|- | |- | ||
|AQ_LOGIN_MD5 | |AQ_LOGIN_MD5 | ||
|dbdw(c) | |||
|acSendLoginMD5 / LoginPacketMd5Key | |acSendLoginMD5 / LoginPacketMd5Key | ||
| | | | ||
|- | |- | ||
|AQ_SERVER_LIST_EXT | |AQ_SERVER_LIST_EXT | ||
|ddc(c[d]) | |||
|acSendServerList / ServerListExtPacket | |acSendServerList / ServerListExtPacket | ||
| | | | ||
|- | |- | ||
|AQ_LOGIN_MD5_MD5 | |AQ_LOGIN_MD5_MD5 | ||
|dbdw(c) | |||
|acSendLoginMD5 / - | |acSendLoginMD5 / - | ||
| | | | ||
|} | |} | ||
</div> | </div> | ||
Line 238: | Line 255: | ||
!Opcode | !Opcode | ||
!Description | !Description | ||
!Structure | !Structure | ||
!AuthServer Function | |||
!Game Function | |||
|- | |- | ||
|AC_PROTOCOL_VER | |AC_PROTOCOL_VER | ||
|Exchange common protocol version with client | |Exchange common protocol version with client | ||
|dddbdb | |||
|CSocketServerEx::OnCreate / acGetProtocolVer | |CSocketServerEx::OnCreate / acGetProtocolVer | ||
| | | | ||
|- | |- | ||
|AC_LOGIN_FAIL | |AC_LOGIN_FAIL | ||
|Reject client authentication | |Reject client authentication | ||
|c | |||
|(more than 1) / acGetLoginFail | |(more than 1) / acGetLoginFail | ||
| | | | ||
|- | |- | ||
|AC_BLOCKED_ACCOUNT | |AC_BLOCKED_ACCOUNT | ||
|Account banned for X until Y | |Account banned for X until Y | ||
|dd | |||
|LoginPacketSecure / acGetBlockedAccount | |LoginPacketSecure / acGetBlockedAccount | ||
| | | | ||
|- | |- | ||
|AC_LOGIN_OK | |AC_LOGIN_OK | ||
|Allow client authentication | |Allow client authentication | ||
|dddddddddddd(dd) | |||
|AccountDB::RegAccount / acGetLoginOK | |AccountDB::RegAccount / acGetLoginOK | ||
| | | | ||
|- | |- | ||
|AC_SEND_SERVERLIST | |AC_SEND_SERVERLIST | ||
|Send list of shards | |Send list of shards | ||
|c[cddccwwcc(cs)] | |||
|CServerList::MakeServerListPacket / acGetSendServerList | |CServerList::MakeServerListPacket / acGetSendServerList | ||
| | | | ||
|- | |- | ||
|AC_SEND_SERVER_FAIL | |AC_SEND_SERVER_FAIL | ||
|Something unexpected happened | |Something unexpected happened | ||
|c | |||
|ServerListExtPacket / acGetSendServerFail | |ServerListExtPacket / acGetSendServerFail | ||
| | | | ||
|- | |- | ||
|AC_PLAY_FAIL | |AC_PLAY_FAIL | ||
|Server selected, but down possibly? | |Server selected, but down possibly? | ||
|c | |||
|(more than 1) / acGetPlayFail | |(more than 1) / acGetPlayFail | ||
| | | | ||
|- | |- | ||
|AC_PLAY_OK | |AC_PLAY_OK | ||
|Server selected, continue | |Server selected, continue | ||
|ddc | |||
|ServerPlayOk / acGetPlayOK | |ServerPlayOk / acGetPlayOK | ||
| | | | ||
|- | |- | ||
|AC_ACCOUNT_KICKED | |AC_ACCOUNT_KICKED | ||
|Account kicked for X | |Account kicked for X | ||
|c | |||
|AccountDB::KickAccount / acGetAccountKicked | |AccountDB::KickAccount / acGetAccountKicked | ||
| | | | ||
|- | |- | ||
|AC_BLOCKED_ACCOUNT_WITH_MSG | |AC_BLOCKED_ACCOUNT_WITH_MSG | ||
|Account permabanned for X | |Account permabanned for X | ||
|s | |||
|LoginPacketSecure / acGetBlockedAccountWithMsg | |LoginPacketSecure / acGetBlockedAccountWithMsg | ||
| | | | ||
|- | |- | ||
|AC_SC_CHECK_REQ | |AC_SC_CHECK_REQ | ||
Line 295: | Line 323: | ||
| - | | - | ||
| - | | - | ||
| | |||
|- | |- | ||
|AC_QUEUE_SIZE | |AC_QUEUE_SIZE | ||
|Queue length and wait time | |Queue length and wait time | ||
|c[ccdd] | |||
|CServerList::MakeQueueSizePacket / acGetQueueSize | |CServerList::MakeQueueSizePacket / acGetQueueSize | ||
| | | | ||
|- | |- | ||
|AC_HANDOFF_TO_QUEUE | |AC_HANDOFF_TO_QUEUE | ||
|Wait in server queue | |Wait in server queue | ||
|ddc | |||
|ServerPlayOk / acGetHandoffToQueue | |ServerPlayOk / acGetHandoffToQueue | ||
| | | | ||
|- | |- | ||
|AC_POSITION_IN_QUEUE | |AC_POSITION_IN_QUEUE | ||
Line 310: | Line 341: | ||
| - | | - | ||
| - | | - | ||
| | |||
|} | |} | ||
</div> | </div> | ||
Line 320: | Line 352: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Opcode | !Opcode | ||
!Structure | |||
!AuthServer Function | !AuthServer Function | ||
|- | |- | ||
|IA_SERVER_VERSION | |IA_SERVER_VERSION | ||
|d | |||
|GetConnectSessionKey | |GetConnectSessionKey | ||
|- | |- | ||
|IA_IP_KIND | |IA_IP_KIND | ||
Line 332: | Line 364: | ||
|- | |- | ||
|IA_IP_USE | |IA_IP_USE | ||
|dcdd | |||
|GetIPAcquireSuccess | |GetIPAcquireSuccess | ||
|- | |- | ||
|IA_IP_START_OK | |IA_IP_START_OK | ||
|dcddd | |||
|StartIPCharge | |StartIPCharge | ||
|- | |- | ||
|IA_IP_START_FAIL | |IA_IP_START_FAIL | ||
|dcddds | |||
|StartIPChargeFail | |StartIPChargeFail | ||
|- | |- | ||
|IA_IP_USE_FAIL | |IA_IP_USE_FAIL | ||
|dc | |||
|GetIPAcquireFail | |GetIPAcquireFail | ||
|- | |- | ||
|IA_IP_SESSIONKEY | |IA_IP_SESSIONKEY | ||
Line 360: | Line 392: | ||
|- | |- | ||
|IA_IP_KICK | |IA_IP_KICK | ||
|dddsd | |||
|GetIPKick | |GetIPKick | ||
|- | |- | ||
|IA_IP_READY_FAIL | |IA_IP_READY_FAIL | ||
|dc | |||
|ReadyIPFail | |ReadyIPFail | ||
|- | |- | ||
|IA_IP_READY_OK | |IA_IP_READY_OK | ||
|dcddd | |||
|ReadyIPOK | |ReadyIPOK | ||
|- | |- | ||
|IA_IP_SET_STARTTIME_OK | |IA_IP_SET_STARTTIME_OK | ||
Line 376: | Line 408: | ||
|- | |- | ||
|IA_IP_SET_STARTTIME_FAIL | |IA_IP_SET_STARTTIME_FAIL | ||
|d | |||
|SetStartTimeFail | |SetStartTimeFail | ||
|} | |} | ||
</div> | </div> | ||
Line 385: | Line 417: | ||
{| class="wikitable" | {| class="wikitable" | ||
!Opcode | !Opcode | ||
!Structure | |||
!AuthServer Function | !AuthServer Function | ||
|- | |- | ||
|AI_SERVER_VERSION | |AI_SERVER_VERSION | ||
|sc | |||
|CIPSocket::OnCreate | |CIPSocket::OnCreate | ||
|- | |- | ||
|AI_IP_KIND | |AI_IP_KIND | ||
Line 397: | Line 429: | ||
|- | |- | ||
|AI_IP_ACQUIRE | |AI_IP_ACQUIRE | ||
|sddd | |||
|CIPSessionDB::AcquireSessionRequest | |CIPSessionDB::AcquireSessionRequest | ||
|- | |- | ||
|AI_IP_RELEASE | |AI_IP_RELEASE | ||
|ddddd | |||
|CIPSessionDB::ReleaseSessionRequest | |CIPSessionDB::ReleaseSessionRequest | ||
|- | |- | ||
|AI_IP_START_CHARGE | |AI_IP_START_CHARGE | ||
|dddcdd | |||
|CIPSessionDB::StartIPCharge | |CIPSessionDB::StartIPCharge | ||
|- | |- | ||
|AI_IP_STOP_CHARGE | |AI_IP_STOP_CHARGE | ||
|ddddcddsd | |||
|CIPSessionDB::StopIPCharge | |CIPSessionDB::StopIPCharge | ||
|- | |- | ||
|AI_IP_INSTANT_START_GAME | |AI_IP_INSTANT_START_GAME | ||
Line 425: | Line 457: | ||
|- | |- | ||
|AI_IP_READY_GAME | |AI_IP_READY_GAME | ||
|dddcdd | |||
|CIPSessionDB::ReadyToIPCharge | |CIPSessionDB::ReadyToIPCharge | ||
|- | |- | ||
|AI_IP_SET_START_TIME | |AI_IP_SET_START_TIME | ||
|dddcdd | |||
|CIPSessionDB::ConfirmIPCharge | |CIPSessionDB::ConfirmIPCharge | ||
|} | |} | ||
</div> | </div> |
Revision as of 00:22, 3 September 2020
Responsible for user authentication and session creation. Has cross-shard capabilities.
Communication Protocols
In the sections below, the table column "Structure" is denoted in a similar format used by the server source. Minus the opcode, which is type c anyways.
Type | Description |
---|---|
c | Char |
w | Word / Short |
d | DWord / Int |
q | QWord / Long |
b | Byte Array |
s | NUL-terminated C String |
[] | Array |
() | Conditional, based on config |
Game Server
TCP Port 2104. AuthServer and DBServer communicate through this port.
Incoming Packets
Opcode | Structure | DBServer Function | AuthServer Function |
---|---|---|---|
AS_PLAY_OK | dd | authSendPlayOK / ServerPlayOk | |
AS_PLAY_FAIL | cd | authSendPlayFail / ServerPlayFail | |
AS_PLAY_GAME | d | authSendPlayGame / ServerPlayGame | |
AS_QUIT_GAME | dwd | authSendQuitGame / ServerPlayQuit | |
AS_KICK_ACCOUNT | dw | authSendKickAccount / ServerKickAccount | |
AS_SERVER_USERNUM | ww | - / ServerGetUserNum | |
AS_BAN_USER | dw | authSendBanAccount / ServerBanUser | |
AS_VERSION | d | authSendVersion / ServerVersion | |
AS_PING | d | authSendPing / ServerPing | |
AS_WRITE_USERDATA | db | authSendUserData / ServerWriteUserData | |
AS_SET_CONNECT | d | authSendSetConnect / ServerSetActive | |
AS_PLAY_USER_LIST | dsddddd | authSendCurrentPlayers / ServerPlayUserList | |
AS_SET_SERVER_ID | cw | - / SetServerId | |
AS_SERVER_USER_NUM_BY_QUEUE_LEVEL | - | - / ServerUserNumByQueueLevel | |
AS_FINISHED_QUEUE | d | - / FinishedQueue | |
AS_SET_LOGIN_FREQUENCY | - | - / SetLoginFrequency | |
AS_QUEUE_SIZES | c[cdd] | - / QueueSizes | |
AS_READ_USERDATA | d | - / ServerReadUserData | |
AS_WRITE_GAMEDATA | db | authSendUserData / ServerWriteGameData | |
AS_READ_GAMEDATA | d | authSendGameDataReq / ServerReadGameData | |
AS_SHARD_TRANSFER | dd | authSendShardTransfer / ServerShardTransfer |
Outgoing Packets
Opcode | Structure | AuthServer Function | DBServer Function |
---|---|---|---|
SQ_ABOUT_TO_PLAY | dsdddd | AccountDB::AboutToPlay / handleAboutToPlay | |
SQ_KICK_ACCOUNT | dcs | AccountDB::KickAccount / handleKickAccount | |
SQ_SERVER_NUM | RequestUserCounts / handleNumOnline | ||
SQ_VERSION | sd(d) | CSocketServer::OnCreate / handleVersion | |
SQ_PING | d | ServerPing / handlePing | |
SQ_COMPLETE_USERLIST | d | ServerPlayUserList / handleCompleteUserList | |
SQ_USER_DATA | db | ServerReadUserData / - | |
SQ_GAME_DATA | db | ServerReadGameData / handleRecvGameData |
Game Client
TCP Port 2106. AuthServer and Game communicate through this port.
Incoming Packets
Opcode | Structure | Game Function | AuthServer Function |
---|---|---|---|
AQ_LOGIN | dbdw(c) | - / LoginPacket | |
AQ_SERVER_LIST | ddc(c[d]) | - / DeprecatedPacket | |
AQ_ABOUT_TO_PLAY | ddc | acSendAboutToPlay / SelectServerPacket | |
AQ_LOGOUT | dd | acSendLogout / LogoutPacket | |
AQ_LOGIN_MD5 | dbdw(c) | acSendLoginMD5 / LoginPacketMd5Key | |
AQ_SERVER_LIST_EXT | ddc(c[d]) | acSendServerList / ServerListExtPacket | |
AQ_LOGIN_MD5_MD5 | dbdw(c) | acSendLoginMD5 / - |
Outgoing Packets
Opcode | Description | Structure | AuthServer Function | Game Function |
---|---|---|---|---|
AC_PROTOCOL_VER | Exchange common protocol version with client | dddbdb | CSocketServerEx::OnCreate / acGetProtocolVer | |
AC_LOGIN_FAIL | Reject client authentication | c | (more than 1) / acGetLoginFail | |
AC_BLOCKED_ACCOUNT | Account banned for X until Y | dd | LoginPacketSecure / acGetBlockedAccount | |
AC_LOGIN_OK | Allow client authentication | dddddddddddd(dd) | AccountDB::RegAccount / acGetLoginOK | |
AC_SEND_SERVERLIST | Send list of shards | c[cddccwwcc(cs)] | CServerList::MakeServerListPacket / acGetSendServerList | |
AC_SEND_SERVER_FAIL | Something unexpected happened | c | ServerListExtPacket / acGetSendServerFail | |
AC_PLAY_FAIL | Server selected, but down possibly? | c | (more than 1) / acGetPlayFail | |
AC_PLAY_OK | Server selected, continue | ddc | ServerPlayOk / acGetPlayOK | |
AC_ACCOUNT_KICKED | Account kicked for X | c | AccountDB::KickAccount / acGetAccountKicked | |
AC_BLOCKED_ACCOUNT_WITH_MSG | Account permabanned for X | s | LoginPacketSecure / acGetBlockedAccountWithMsg | |
AC_SC_CHECK_REQ | - | - | - | |
AC_QUEUE_SIZE | Queue length and wait time | c[ccdd] | CServerList::MakeQueueSizePacket / acGetQueueSize | |
AC_HANDOFF_TO_QUEUE | Wait in server queue | ddc | ServerPlayOk / acGetHandoffToQueue | |
AC_POSITION_IN_QUEUE | - | - | - |
GM Tools
TCP Port 2108. Used for internal administration?
Incoming Packets
Opcode | Structure | AuthServer Function |
---|---|---|
IA_SERVER_VERSION | d | GetConnectSessionKey |
IA_IP_KIND | - | - |
IA_IP_USE | dcdd | GetIPAcquireSuccess |
IA_IP_START_OK | dcddd | StartIPCharge |
IA_IP_START_FAIL | dcddds | StartIPChargeFail |
IA_IP_USE_FAIL | dc | GetIPAcquireFail |
IA_IP_SESSIONKEY | - | - |
IA_IP_INSTANTLOGIN_OK | - | - |
IA_IP_INSTANTLOGIN_FAIL | - | - |
IA_IP_KICK | dddsd | GetIPKick |
IA_IP_READY_FAIL | dc | ReadyIPFail |
IA_IP_READY_OK | dcddd | ReadyIPOK |
IA_IP_SET_STARTTIME_OK | - | - |
IA_IP_SET_STARTTIME_FAIL | d | SetStartTimeFail |
Outgoing Packets
Opcode | Structure | AuthServer Function |
---|---|---|
AI_SERVER_VERSION | sc | CIPSocket::OnCreate |
AI_IP_KIND | - | - |
AI_IP_ACQUIRE | sddd | CIPSessionDB::AcquireSessionRequest |
AI_IP_RELEASE | ddddd | CIPSessionDB::ReleaseSessionRequest |
AI_IP_START_CHARGE | dddcdd | CIPSessionDB::StartIPCharge |
AI_IP_STOP_CHARGE | ddddcddsd | CIPSessionDB::StopIPCharge |
AI_IP_INSTANT_START_GAME | - | - |
AI_IP_INSTANT_STOP_GAME | - | - |
AI_IP_KICKED | - | - |
AI_IP_READY_GAME | dddcdd | CIPSessionDB::ReadyToIPCharge |
AI_IP_SET_START_TIME | dddcdd | CIPSessionDB::ConfirmIPCharge |