From 3cfe9461cc96a433b337cbdbcf06d57cefc9f935 Mon Sep 17 00:00:00 2001 From: gor_down Date: Sun, 22 Jun 2025 03:52:52 -0300 Subject: [PATCH] hecho --- src/server.cpp | 25 +++++++++++++++---------- src/server.h | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/server.cpp b/src/server.cpp index e00dccd..40a0e3c 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -94,20 +94,20 @@ void Server::start() // Start non-secure server if (!server->listen(bind_addr, m_port)) { qDebug() << "Non-secure server error:" << server->errorString(); - } - else { - connect(server, &QWebSocketServer::newConnection, - this, &Server::clientConnected); + } else { + connect(server, &QWebSocketServer::newConnection, this, [this]() { + this->clientConnected(server); + }); qInfo() << "Non-secure server listening on" << server->serverPort(); } // Start secure server if (!secure_server->listen(bind_addr, m_secure_port)) { qDebug() << "Secure server error:" << secure_server->errorString(); - } - else { - connect(secure_server, &QWebSocketServer::newConnection, - this, &Server::clientConnected); + } else { + connect(secure_server, &QWebSocketServer::newConnection, this, [this]() { + this->clientConnected(secure_server); + }); qInfo() << "Secure server listening on" << secure_server->serverPort(); } @@ -192,9 +192,14 @@ QVector Server::getClients() return m_clients; } -void Server::clientConnected() +void Server::clientConnected(QWebSocketServer* whichServer) { - QWebSocket *socket = server->nextPendingConnection(); + QWebSocket *socket = whichServer->nextPendingConnection(); + if (!socket) { + qWarning() << "Failed to get pending connection from" << whichServer->serverName(); + return; + } + NetworkSocket *l_socket = new NetworkSocket(socket, socket); // Too many players. Reject connection! diff --git a/src/server.h b/src/server.h index 1c6f426..1a2d42c 100644 --- a/src/server.h +++ b/src/server.h @@ -345,7 +345,7 @@ class Server : public QObject * @details The function creates an AOClient to represent the user, assigns a user ID to them, and * checks if the client is banned. */ - void clientConnected(); + void clientConnected(QWebSocketServer *whichServer); /** * @brief Marks a userID as free and ads it back to the available client id queue.