diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/mainwindow/mainwindow.cpp | 6 | ||||
-rw-r--r-- | src/server/net/listenserver.cpp | 9 | ||||
-rw-r--r-- | src/server/net/listenserver.h | 1 |
3 files changed, 6 insertions, 10 deletions
diff --git a/src/server/mainwindow/mainwindow.cpp b/src/server/mainwindow/mainwindow.cpp index 6afa608..d1974ab 100644 --- a/src/server/mainwindow/mainwindow.cpp +++ b/src/server/mainwindow/mainwindow.cpp @@ -812,6 +812,12 @@ void MainWindow::onClientAuthenticated(Client* client) tellClientCurrentSituation(client); return; } + + if (_clientFrames.size() > 50) { + client->deleteLater(); + return; + } + // New one, create ConnectionFrame *cf = createFrame(); // Try to load last known position diff --git a/src/server/net/listenserver.cpp b/src/server/net/listenserver.cpp index 859ee33..b005a45 100644 --- a/src/server/net/listenserver.cpp +++ b/src/server/net/listenserver.cpp @@ -18,8 +18,6 @@ ListenServer::ListenServer(quint16 port) ListenServer::~ListenServer() { _server.close(); - for (int i = 0; i < _clients.size(); ++i) - _clients[i]->deleteLater(); // TODO are there nullptrs? } /* @@ -36,14 +34,7 @@ void ListenServer::newClientConnection() QSslSocket* sock; while ((sock = (QSslSocket*)_server.nextPendingConnection()) != NULL) { - if (_clients.size() >= MAX_CLIENTS) - { - sock->abort(); - sock->deleteLater(); - continue; - } Client* client = new Client(sock); // TODO: what happens with disconnected clients - _clients.append(client); // create new client class and add to list emit newClient(client); } } diff --git a/src/server/net/listenserver.h b/src/server/net/listenserver.h index e0cece3..640da23 100644 --- a/src/server/net/listenserver.h +++ b/src/server/net/listenserver.h @@ -16,7 +16,6 @@ class ListenServer : public QObject private: SslServer _server; - QList<Client*> _clients; public: explicit ListenServer(quint16 port); |