summaryrefslogtreecommitdiffstats
path: root/signet/Server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'signet/Server.cpp')
-rw-r--r--signet/Server.cpp36
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()