diff options
Diffstat (limited to 'signet/Server.cpp')
| -rw-r--r-- | signet/Server.cpp | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/signet/Server.cpp b/signet/Server.cpp index aceba291..df61f47f 100644 --- a/signet/Server.cpp +++ b/signet/Server.cpp @@ -35,13 +35,27 @@ #include <QtNetwork/QTcpSocket> Signet::Server::Server(QObject* parent) : - ConnectionHandler(parent) + ClientHandler(parent) { loadConfiguration(); if (m_masterInfo.isValid()) connectToMaster(); } +void Signet::Server::packetReceived(QTcpSocket* client, Protocol::Packet* packet) +{ + QString receiver = packet->received(); + if (receiver.isEmpty()) + { + // TODO: Handle the packet + } + else + { + createRoom(receiver); + m_rooms[receiver]->packetReceived(client, packet); + } +} + void Signet::Server::createRoom(const QString& room) { if (m_rooms.contains(room)) @@ -103,29 +117,11 @@ void Signet::Server::masterError() qWarning("Master server socket error: %s", m_master->errorString().toUtf8().constData()); } -void Signet::Server::joinRoom(Client* client, const QString& roomName) -{ - if (!m_rooms.contains(roomName)) - createRoom(roomName); - if (!m_rooms[roomName]->addClient(client)) - { - // TODO: Let the client know about the error. - } -} - void Signet::Server::loadConfiguration() { if (KGlobal::config()->hasGroup("Master Server")) m_masterInfo.load(KGlobal::config()->group("Master Server")); - if (KGlobal::config()->hasGroup("Server Info")) - { - const KConfigGroup& group = KGlobal::config()->group("Server Info"); - m_name = group.readEntry("Name", ""); - if (m_name.isEmpty()) - qFatal("Server name is not set"); - } - else - qFatal("No \"Server Info\" group in configuration"); + m_name = KGlobal::config()->group("Server Info").readEntry("Name", ""); } void Signet::Server::connectToMaster() |
