algo ngigers

This commit is contained in:
simio 2025-06-19 13:21:16 -03:00
parent 04c8829732
commit 0a0bd116d5
3 changed files with 27 additions and 6 deletions

View File

@ -45,7 +45,7 @@ int main(int argc, char *argv[])
QCoreApplication::quit();
}
else {
server = new Server(ConfigManager::serverPort(), &app);
server = new Server(ConfigManager::serverPort(), ConfigManager::securePort(), &app);
server->start();
}

View File

@ -12,11 +12,13 @@
#include "packet/packet_factory.h"
#include "serverpublisher.h"
Server::Server(int p_ws_port, QObject *parent) :
Server::Server(int p_ws_port, int p_wss_port, QObject *parent) :
QObject(parent),
m_port(p_ws_port),
m_secure_port(p_wss_port),
m_player_count(0)
{
timer = new QTimer(this);
db_manager = new DBManager;
@ -38,6 +40,7 @@ void Server::start()
{
QString bind_ip = ConfigManager::bindIP();
QHostAddress bind_addr;
if (bind_ip == "all")
bind_addr = QHostAddress::Any;
else
@ -46,7 +49,15 @@ void Server::start()
qDebug() << bind_ip << "is an invalid IP address to listen on! Server not starting, check your config.";
}
QFile keyFile("/home/gor/Desktop/akashi-esquizolandia/bin/config/certs/private.key");
QSettings settings("config/ssl.ini", QSettings::IniFormat);
QString privateKeyPath = settings.value("SSL/privateKey").toString();
QString certificatePath = settings.value("SSL/certificate").toString();
QString caCertificatePath = settings.value("SSL/caCertificate").toString();
QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
QFile keyFile(privateKeyPath);
if (!keyFile.open(QIODevice::ReadOnly)) {
qWarning() << "Unable to open private key file.";
return;
@ -54,15 +65,23 @@ void Server::start()
QSslKey privateKey(&keyFile, QSsl::Rsa);
keyFile.close();
QFile certFile("/home/gor/Desktop/akashi-esquizolandia/bin/config/certs/certificate.crt");
QFile certFile(certificatePath);
if (!certFile.open(QIODevice::ReadOnly)) {
qWarning() << "Unable to open certificate file.";
return;
}
QSslCertificate certificate(&certFile);
certFile.close();
QSslConfiguration sslConfig = QSslConfiguration::defaultConfiguration();
QFile caFile(caCertificatePath);
if (caFile.open(QIODevice::ReadOnly)) {
QSslCertificate caCertificate(&caFile);
sslConfig.addCaCertificate(caCertificate);
caFile.close();
}
sslConfig.setPrivateKey(privateKey);
sslConfig.setLocalCertificate(certificate);

View File

@ -55,9 +55,10 @@ class Server : public QObject
* @brief Creates a Server instance.
*
* @param p_ws_port The port to listen for connections on.
@param p_wss_port
* @param parent Qt-based parent, passed along to inherited constructor from QObject.
*/
Server(int p_ws_port, QObject *parent = nullptr);
Server(int p_ws_port, int p_wss_port, QObject *parent = nullptr);
/**
* @brief Destructor for the Server class.
@ -427,6 +428,7 @@ class Server : public QObject
* @brief The port through which the server will accept WebSocket connections.
*/
int m_port;
int m_secure_port;
/**
* @brief The collection of all currently connected clients.