20#ifndef SERVERSOCKETINTERFACE_H
21#define SERVERSOCKETINTERFACE_H
23#include <QHostAddress>
32class ServerInfo_DeckStorage_Folder;
34class Command_AddToList;
35class Command_RemoveFromList;
36class Command_DeckList;
37class Command_DeckNewDir;
38class Command_DeckDelDir;
40class Command_DeckDownload;
41class Command_DeckUpload;
42class Command_ReplayList;
43class Command_ReplayDownload;
44class Command_ReplayModifyMatch;
45class Command_ReplayDeleteMatch;
46class Command_ReplayGetCode;
47class Command_ReplaySubmitCode;
49class Command_BanFromServer;
50class Command_UpdateServerMessage;
51class Command_ShutdownServer;
52class Command_ReloadConfig;
54class Command_AccountEdit;
55class Command_AccountImage;
56class Command_AccountPassword;
87 bool deckListHelper(
int folderId, ServerInfo_DeckStorage_Folder *folder);
118 const QString &clientId,
120 bool challenged =
false);
126 Response::ResponseCode
148 QObject *parent = 0);
166 QObject *parent = 0);
171 return socket->peerAddress();
175 return socket->peerAddress().toString();
213 QObject *parent =
nullptr);
236 socket->sendBinaryMessage(data);
bool isPasswordLongEnough(const int passwordLength)
Definition serversocketinterface.cpp:2369
Response::ResponseCode cmdReplayDeleteMatch(const Command_ReplayDeleteMatch &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:789
Response::ResponseCode cmdRegisterAccount(const Command_Register &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1236
QMutex outputQueueMutex
Definition serversocketinterface.h:78
Response::ResponseCode processExtendedSessionCommand(int cmdType, const SessionCommand &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:163
Response::ResponseCode cmdRequestPasswordSalt(const Command_RequestPasswordSalt &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1786
Response::ResponseCode cmdDeckDownload(const Command_DeckDownload &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:649
Response::ResponseCode cmdGrantReplayAccess(const Command_GrantReplayAccess &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1918
Response::ResponseCode cmdDeckList(const Command_DeckList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:449
Response::ResponseCode cmdAccountEdit(const Command_AccountEdit &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1462
virtual QString getAddress() const =0
Response::ResponseCode cmdForceActivateUser(const Command_ForceActivateUser &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1964
Response::ResponseCode cmdDeckDel(const Command_DeckDel &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:554
Response::ResponseCode cmdGetAdminNotes(const Command_GetAdminNotes &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1994
Response::ResponseCode cmdShutdownServer(const Command_ShutdownServer &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1816
Response::ResponseCode cmdAddToList(const Command_AddToList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:272
int getDeckPathId(int basePathId, QStringList path)
Definition serversocketinterface.cpp:368
Response::ResponseCode cmdReplaySubmitCode(const Command_ReplaySubmitCode &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:880
bool tooManyRegistrationAttempts(const QString &ipAddress)
Definition serversocketinterface.cpp:1422
void sendServerMessage(const QString userName, const QString message)
Definition serversocketinterface.cpp:520
Response::ResponseCode cmdGetWarnList(const Command_GetWarnList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1044
Response::ResponseCode cmdAdjustMod(const Command_AdjustMod &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:1885
virtual void writeToSocket(QByteArray &data)=0
Response::ResponseCode cmdDeckUpload(const Command_DeckUpload &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:577
Response::ResponseCode cmdGetLogHistory(const Command_ViewLogHistory &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:946
Response::ResponseCode cmdUpdateServerMessage(const Command_UpdateServerMessage &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1809
Response::ResponseCode cmdReplayDownload(const Command_ReplayDownload &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:727
Response::ResponseCode cmdDeckNewDir(const Command_DeckNewDir &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:469
Response::ResponseCode processExtendedAdminCommand(int cmdType, const AdminCommand &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:256
void deckDelDirHelper(int basePathId)
Definition serversocketinterface.cpp:500
Response::ResponseCode cmdForgotPasswordChallenge(const Command_ForgotPasswordChallenge &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1745
bool addAdminFlagToUser(const QString &user, int flag)
Definition serversocketinterface.cpp:1833
bool removeAdminFlagFromUser(const QString &user, int flag)
Definition serversocketinterface.cpp:1857
void transmitProtocolItem(const ServerMessage &item)
Definition serversocketinterface.cpp:149
AbstractServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition serversocketinterface.cpp:93
void logDebugMessage(const QString &message)
Definition serversocketinterface.cpp:158
Response::ResponseCode cmdForgotPasswordRequest(const Command_ForgotPasswordRequest &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1604
~AbstractServerSocketInterface()
Definition serversocketinterface.h:149
Response::ResponseCode cmdReloadConfig(const Command_ReloadConfig &, ResponseContainer &)
Definition serversocketinterface.cpp:1824
Response::ResponseCode cmdAccountPassword(const Command_AccountPassword &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1568
void catchSocketDisconnected()
Definition serversocketinterface.cpp:144
Response::ResponseCode cmdReplayGetCode(const Command_ReplayGetCode &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:844
Response::ResponseCode cmdAccountImage(const Command_AccountImage &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1546
Servatrice_DatabaseInterface * sqlInterface
Definition serversocketinterface.h:81
Response::ResponseCode cmdReplayList(const Command_ReplayList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:671
bool initSession()
Definition serversocketinterface.cpp:105
bool deckListHelper(int folderId, ServerInfo_DeckStorage_Folder *folder)
Definition serversocketinterface.cpp:401
void incTxBytes(qint64 amount)
QString createHashForReplay(int gameId)
Definition serversocketinterface.cpp:821
Response::ResponseCode processExtendedModeratorCommand(int cmdType, const ModeratorCommand &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:225
void outputQueueChanged()
void removeSaidMessages(const QString &userName, int amount)
Definition serversocketinterface.cpp:1075
Response::ResponseCode cmdDeckDelDir(const Command_DeckDelDir &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:537
Response::ResponseCode cmdGetBanHistory(const Command_GetBanHistory &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1029
QList< ServerMessage > outputQueue
Definition serversocketinterface.h:77
Response::ResponseCode cmdUpdateAdminNotes(const Command_UpdateAdminNotes &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:2017
virtual void flushOutputQueue()=0
Response::ResponseCode cmdActivateAccount(const Command_Activate &cmd, ResponseContainer &)
Definition serversocketinterface.cpp:1429
void catchSocketError(QAbstractSocket::SocketError socketError)
Definition serversocketinterface.cpp:137
Response::ResponseCode cmdForgotPasswordReset(const Command_ForgotPasswordReset &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1690
DeckList * getDeckFromDatabase(int deckId)
Response::ResponseCode cmdGetWarnHistory(const Command_GetWarnHistory &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1060
Response::ResponseCode cmdWarnUser(const Command_WarnUser &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1082
Response::ResponseCode continuePasswordRequest(const QString &userName, const QString &clientId, ResponseContainer &rc, bool challenged=false)
Definition serversocketinterface.cpp:1640
Servatrice * servatrice
Definition serversocketinterface.h:76
Response::ResponseCode cmdReplayModifyMatch(const Command_ReplayModifyMatch &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:766
Response::ResponseCode cmdBanFromServer(const Command_BanFromServer &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:1127
virtual QHostAddress getPeerAddress() const =0
virtual void flushSocket()=0
Response::ResponseCode cmdRemoveFromList(const Command_RemoveFromList &cmd, ResponseContainer &rc)
Definition serversocketinterface.cpp:321
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:18
Definition servatrice.h:131
Server_ProtocolHandler(Server *_server, Server_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition server_protocolhandler.cpp:31
TcpServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, QObject *parent=0)
Definition serversocketinterface.cpp:2036
QByteArray inputBuffer
Definition serversocketinterface.h:184
QHostAddress getPeerAddress() const
Definition serversocketinterface.h:169
void readClient()
Definition serversocketinterface.cpp:2117
void flushSocket()
Definition serversocketinterface.h:194
void writeToSocket(QByteArray &data)
Definition serversocketinterface.h:190
bool messageInProgress
Definition serversocketinterface.h:185
bool handshakeStarted
Definition serversocketinterface.h:186
QString getConnectionType() const
Definition serversocketinterface.h:177
void initSessionDeprecated()
Definition serversocketinterface.cpp:2068
QString getAddress() const
Definition serversocketinterface.h:173
QTcpSocket * socket
Definition serversocketinterface.h:183
~TcpServerSocketInterface()
Definition serversocketinterface.cpp:2050
void flushOutputQueue()
Definition serversocketinterface.cpp:2078
int messageLength
Definition serversocketinterface.h:187
void initConnection(int socketDescriptor)
Definition serversocketinterface.cpp:2057
bool initTcpSession()
Definition serversocketinterface.cpp:2187
QString getConnectionType() const
Definition serversocketinterface.h:224
QString getAddress() const
Definition serversocketinterface.h:220
void binaryMessageReceived(const QByteArray &message)
Definition serversocketinterface.cpp:2331
WebsocketServerSocketInterface(Servatrice *_server, Servatrice_DatabaseInterface *_databaseInterface, QObject *parent=nullptr)
Definition serversocketinterface.cpp:2214
void flushOutputQueue()
Definition serversocketinterface.cpp:2296
~WebsocketServerSocketInterface()
Definition serversocketinterface.cpp:2221
QHostAddress getPeerAddress() const
Definition serversocketinterface.h:216
QHostAddress address
Definition serversocketinterface.h:231
void initConnection(void *_socket)
Definition serversocketinterface.cpp:2228
void flushSocket()
Definition serversocketinterface.h:238
QWebSocket * socket
Definition serversocketinterface.h:230
bool initWebsocketSession()
Definition serversocketinterface.cpp:2268
void writeToSocket(QByteArray &data)
Definition serversocketinterface.h:234