20#ifndef SERVERSOCKETINTERFACE_H
21#define SERVERSOCKETINTERFACE_H
23#include <QHostAddress>
27#include <libcockatrice/protocol/pb/command_replay_download_by_game_id.pb.h>
28#include <libcockatrice/protocol/pb/command_report.pb.h>
29#include <libcockatrice/protocol/pb/command_report_add_comment.pb.h>
30#include <libcockatrice/protocol/pb/command_report_assign.pb.h>
31#include <libcockatrice/protocol/pb/command_report_details.pb.h>
32#include <libcockatrice/protocol/pb/command_report_list.pb.h>
33#include <libcockatrice/protocol/pb/command_report_my_list.pb.h>
34#include <libcockatrice/protocol/pb/command_report_resolve.pb.h>
35#include <libcockatrice/protocol/pb/command_report_stats.pb.h>
36#include <libcockatrice/protocol/pb/command_report_user_info.pb.h>
134 const QString &clientId,
136 bool challenged =
false);
184 QObject *parent = 0);
202 QObject *parent = 0);
207 return socket->peerAddress();
211 return socket->peerAddress().toString();
249 QObject *parent =
nullptr);
272 socket->sendBinaryMessage(data);
bool isPasswordLongEnough(const int passwordLength)
Definition serversocketinterface.cpp:3714
Response::ResponseCode cmdReplayDeleteMatch(const Command_ReplayDeleteMatch &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:861
Response::ResponseCode cmdRegisterAccount(const Command_Register &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2317
QMutex outputQueueMutex
Definition serversocketinterface.h:89
Response::ResponseCode cmdRequestPasswordSalt(const Command_RequestPasswordSalt &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3037
Response::ResponseCode cmdReportAssign(const Command_ReportAssign &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:1401
Response::ResponseCode cmdDeckDownload(const Command_DeckDownload &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:721
Response::ResponseCode cmdGrantReplayAccess(const Command_GrantReplayAccess &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3263
Response::ResponseCode cmdDeckList(const Command_DeckList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:521
Response::ResponseCode cmdAccountEdit(const Command_AccountEdit &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2543
Response::ResponseCode cmdRemoveCardArtRule(const Command_RemoveCardArtRule &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:2771
Response::ResponseCode cmdForceActivateUser(const Command_ForceActivateUser &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3309
Response::ResponseCode processExtendedModeratorCommand(int cmdType, const ModeratorCommand &cmd, ResponseContainer &rc) override
Definition serversocketinterface.cpp:265
Response::ResponseCode cmdDeckDel(const Command_DeckDel &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:626
Response::ResponseCode cmdGetAdminNotes(const Command_GetAdminNotes &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3339
QString getAddress() const override=0
Response::ResponseCode cmdShutdownServer(const Command_ShutdownServer &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3161
Response::ResponseCode cmdReportList(const Command_ReportList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1313
Response::ResponseCode cmdAddToList(const Command_AddToList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:340
int getDeckPathId(int basePathId, QStringList path)
Definition serversocketinterface.cpp:440
Response::ResponseCode cmdReplaySubmitCode(const Command_ReplaySubmitCode &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:952
bool tooManyRegistrationAttempts(const QString &ipAddress)
Definition serversocketinterface.cpp:2503
void sendServerMessage(const QString userName, const QString message)
Definition serversocketinterface.cpp:592
Response::ResponseCode cmdGetWarnList(const Command_GetWarnList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1120
Response::ResponseCode cmdAdjustMod(const Command_AdjustMod &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:3230
virtual void writeToSocket(QByteArray &data)=0
Response::ResponseCode cmdDeckUpload(const Command_DeckUpload &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:649
Response::ResponseCode cmdReportUserInfo(const Command_ReportUserInfo &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1544
Response::ResponseCode cmdGetLogHistory(const Command_ViewLogHistory &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1022
Response::ResponseCode cmdUpdateServerMessage(const Command_UpdateServerMessage &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3154
Response::ResponseCode cmdReportResolve(const Command_ReportResolve &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:1445
Response::ResponseCode cmdReplayDownload(const Command_ReplayDownload &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:799
void transmitProtocolItem(const ServerMessage &item) override
Definition serversocketinterface.cpp:179
Response::ResponseCode cmdDeckNewDir(const Command_DeckNewDir &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:541
bool isCardNameAllowed(const QString &cardName, const QString &cardProviderId)
Definition serversocketinterface.cpp:2649
Response::ResponseCode cmdSetCardArtParams(const Command_SetCardArtParams &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:2669
Response::ResponseCode processExtendedSessionCommand(int cmdType, const SessionCommand &cmd, ResponseContainer &rc) override
Definition serversocketinterface.cpp:193
Response::ResponseCode cmdGetModeratorLastLogins(const Command_GetModeratorLastLogins &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1796
void deckDelDirHelper(int basePathId)
Definition serversocketinterface.cpp:572
Response::ResponseCode cmdForgotPasswordChallenge(const Command_ForgotPasswordChallenge &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2996
bool addAdminFlagToUser(const QString &user, int flag)
Definition serversocketinterface.cpp:3178
bool removeAdminFlagFromUser(const QString &user, int flag)
Definition serversocketinterface.cpp:3202
Response::ResponseCode cmdReportMyList(const Command_ReportMyList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1979
Response::ResponseCode cmdReportDetails(const Command_ReportDetails &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2048
AbstractServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition serversocketinterface.cpp:123
Response::ResponseCode cmdForgotPasswordRequest(const Command_ForgotPasswordRequest &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2854
Response::ResponseCode cmdReportAddComment(const Command_ReportAddComment &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2151
~AbstractServerSocketInterface()
Definition serversocketinterface.h:185
Response::ResponseCode cmdReloadConfig(const Command_ReloadConfig &, ResponseContainer &)
Definition serversocketinterface.cpp:3169
Response::ResponseCode cmdAccountPassword(const Command_AccountPassword &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2816
void catchSocketDisconnected()
Definition serversocketinterface.cpp:174
Response::ResponseCode cmdReplayGetCode(const Command_ReplayGetCode &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:916
Response::ResponseCode cmdAccountImage(const Command_AccountImage &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2627
Servatrice_DatabaseInterface * sqlInterface
Definition serversocketinterface.h:92
Response::ResponseCode processExtendedAdminCommand(int cmdType, const AdminCommand &cmd, ResponseContainer &rc) override
Definition serversocketinterface.cpp:322
Response::ResponseCode cmdRemoveUserAvatar(const Command_RemoveUserAvatar &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1873
Response::ResponseCode cmdReplayList(const Command_ReplayList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:743
bool initSession()
Definition serversocketinterface.cpp:135
bool deckListHelper(int folderId, ServerInfo_DeckStorage_Folder *folder)
Definition serversocketinterface.cpp:473
Response::ResponseCode cmdGetUserSessions(const Command_GetUserSessions &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1753
Response::ResponseCode cmdResetUserPassword(const Command_ResetUserPassword &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1812
void logDebugMessage(const QString &message) override
Definition serversocketinterface.cpp:188
Response::ResponseCode cmdReplayDownloadByGameId(const Command_ReplayDownloadByGameId &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2283
void incTxBytes(qint64 amount)
QString createHashForReplay(int gameId)
Definition serversocketinterface.cpp:893
void outputQueueChanged()
void removeSaidMessages(const QString &userName, int amount)
Definition serversocketinterface.cpp:1152
Response::ResponseCode cmdDeckDelDir(const Command_DeckDelDir &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:609
Response::ResponseCode cmdGetBanHistory(const Command_GetBanHistory &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1105
void onLogin(ResponseContainer &rc) override
Definition serversocketinterface.cpp:1974
QList< ServerMessage > outputQueue
Definition serversocketinterface.h:88
Response::ResponseCode cmdUpdateAdminNotes(const Command_UpdateAdminNotes &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:3362
virtual void flushOutputQueue()=0
Response::ResponseCode cmdActivateAccount(const Command_Activate &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:2510
void catchSocketError(QAbstractSocket::SocketError socketError)
Definition serversocketinterface.cpp:167
Response::ResponseCode cmdForgotPasswordReset(const Command_ForgotPasswordReset &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2940
Response::ResponseCode cmdReport(const Command_Report &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:3056
DeckList * getDeckFromDatabase(int deckId)
Response::ResponseCode cmdGetWarnHistory(const Command_GetWarnHistory &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1137
Response::ResponseCode cmdReportStats(const Command_ReportStats &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1646
Response::ResponseCode cmdAddCardArtRule(const Command_AddCardArtRule &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:2737
Response::ResponseCode cmdWarnUser(const Command_WarnUser &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1159
Response::ResponseCode cmdGetUserAlts(const Command_GetUserAlts &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1775
Response::ResponseCode continuePasswordRequest(const QString &userName, const QString &clientId, ResponseContainer &rc, bool challenged=false)
Definition serversocketinterface.cpp:2890
Servatrice * servatrice
Definition serversocketinterface.h:87
void sendPendingReportNotifications(ResponseContainer &rc)
Definition serversocketinterface.cpp:1898
Response::ResponseCode cmdListCardArtRules(const Command_ListCardArtRules &, ResponseContainer &rc)
Definition serversocketinterface.cpp:2792
Response::ResponseCode cmdReplayModifyMatch(const Command_ReplayModifyMatch &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:838
Response::ResponseCode cmdBanFromServer(const Command_BanFromServer &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1204
virtual QHostAddress getPeerAddress() const =0
virtual void flushSocket()=0
Response::ResponseCode cmdRemoveFromList(const Command_RemoveFromList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:393
Represents a complete deck, including metadata, zones, cards, and sideboard plans.
Definition deck_list.h:63
Definition server_response_containers.h:89
Definition servatrice_database_interface.h:21
Definition servatrice.h:134
Server_ProtocolHandler(Server *_server, Server_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition server_protocolhandler.cpp:32
TcpServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition serversocketinterface.cpp:3381
QByteArray inputBuffer
Definition serversocketinterface.h:220
QHostAddress getPeerAddress() const
Definition serversocketinterface.h:205
void readClient()
Definition serversocketinterface.cpp:3462
void flushSocket()
Definition serversocketinterface.h:230
void writeToSocket(QByteArray &data)
Definition serversocketinterface.h:226
bool messageInProgress
Definition serversocketinterface.h:221
bool handshakeStarted
Definition serversocketinterface.h:222
QString getConnectionType() const
Definition serversocketinterface.h:213
void initSessionDeprecated()
Definition serversocketinterface.cpp:3413
QString getAddress() const
Definition serversocketinterface.h:209
QTcpSocket * socket
Definition serversocketinterface.h:219
~TcpServerSocketInterface()
Definition serversocketinterface.cpp:3395
void flushOutputQueue()
Definition serversocketinterface.cpp:3423
int messageLength
Definition serversocketinterface.h:223
void initConnection(int socketDescriptor)
Definition serversocketinterface.cpp:3402
bool initTcpSession()
Definition serversocketinterface.cpp:3532
QString getConnectionType() const
Definition serversocketinterface.h:260
QString getAddress() const
Definition serversocketinterface.h:256
void binaryMessageReceived(const QByteArray &message)
Definition serversocketinterface.cpp:3676
WebsocketServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, QObject *parent=nullptr)
Definition serversocketinterface.cpp:3559
void flushOutputQueue()
Definition serversocketinterface.cpp:3641
~WebsocketServerSocketInterface()
Definition serversocketinterface.cpp:3566
QHostAddress getPeerAddress() const
Definition serversocketinterface.h:252
QHostAddress address
Definition serversocketinterface.h:267
void initConnection(void *_socket)
Definition serversocketinterface.cpp:3573
void flushSocket()
Definition serversocketinterface.h:274
QWebSocket * socket
Definition serversocketinterface.h:266
bool initWebsocketSession()
Definition serversocketinterface.cpp:3613
void writeToSocket(QByteArray &data)
Definition serversocketinterface.h:270
Definition admin_commands.proto:2
Definition session_commands.proto:147
Definition session_commands.proto:158
Definition session_commands.proto:164
Definition session_commands.proto:135
Definition moderator_commands.proto:112
Definition session_commands.proto:85
Definition admin_commands.proto:29
Definition moderator_commands.proto:31
Definition command_deck_del_dir.proto:3
Definition command_deck_del.proto:3
Definition command_deck_download.proto:3
Definition command_deck_list.proto:3
Definition command_deck_new_dir.proto:3
Definition command_deck_upload.proto:3
Definition moderator_commands.proto:92
Definition session_commands.proto:191
Definition session_commands.proto:174
Definition session_commands.proto:181
Definition moderator_commands.proto:99
Definition moderator_commands.proto:43
Definition moderator_commands.proto:146
Definition moderator_commands.proto:140
Definition moderator_commands.proto:133
Definition moderator_commands.proto:58
Definition moderator_commands.proto:64
Definition moderator_commands.proto:85
Definition moderator_commands.proto:128
Definition session_commands.proto:112
Definition admin_commands.proto:24
Definition moderator_commands.proto:121
Definition session_commands.proto:92
Definition moderator_commands.proto:151
Definition command_replay_delete_match.proto:3
Definition command_replay_download_by_game_id.proto:3
Definition command_replay_download.proto:3
Definition command_replay_get_code.proto:3
Definition command_replay_list.proto:3
Definition command_replay_modify_match.proto:3
Definition command_replay_submit_code.proto:3
Definition command_report_assign.proto:3
Definition command_report_details.proto:3
Definition command_report_list.proto:3
Definition command_report_my_list.proto:3
Definition command_report_resolve.proto:3
Definition command_report_stats.proto:3
Definition command_report_user_info.proto:3
Definition command_report.proto:3
Definition session_commands.proto:199
Definition admin_commands.proto:37
Definition session_commands.proto:205
Definition admin_commands.proto:17
Definition moderator_commands.proto:105
Definition admin_commands.proto:12
Definition moderator_commands.proto:72
Definition moderator_commands.proto:49
Definition moderator_commands.proto:2
ResponseCode
Definition response.proto:14
Definition serverinfo_deckstorage.proto:5
Definition server_message.proto:6
Definition session_commands.proto:2