mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
Start SmartPointers (#1679)
* Refactor to fix #1671 * Add GUI/NonGUI mode to info page * Do not show lock config, if in non-UI mode * Updae Changelog * Correct includes * Ensure key member initialization - RGB Channels * Ensure key member initialization - WebServer * Update RGBChannels * Fix initialization order * Fix key when inserting new logger in LoggerMap, Prepare logBuffer-JSON snapshot view in LoggerManager, Increase buffered loglines to 500 * Fix Memory leak in GrabberWrapper * Fix Memory leak in BlackBorderProcessor * Fix Memory leak in BlackBorderProcessor * use ninja generator under macos * Fix BGEffectHandler destruction * Fix Mdns code * Clear list after applying qDeleteAll * Fix deletion of CecHandler * Fix memory leak caused by wrong buffer allocation * Remove extra pixel consistently * Change mDNS to Qt SmartPointers * Correct removal * Fix usage of _width/_height (they are the output resolution, not the screen resolution) That avoids unnecessary resizing of the output image with every transferFrame call * Move main non Thread Objects to Smart Pointers * Refactor Hyperion Daemon unsing smartpointers * Correction * Correct typos/ align text * Fix startGrabberDispmanx * Fix startGrabberDispmanx * Address CodeQL finding * Create Screen grabbers via Template * Fix typo * Change way of logging * Revert change * Address deprecation warning * Correct auto screen grabber evaluation --------- Co-authored-by: Paulchen-Panther <16664240+Paulchen-Panther@users.noreply.github.com>
This commit is contained in:
@@ -31,7 +31,6 @@ WebServer::WebServer(const QJsonDocument& config, bool useSsl, QObject* parent)
|
||||
, _useSsl(useSsl)
|
||||
, _log(Logger::getInstance("WEBSERVER"))
|
||||
, _port(WEBSERVER_DEFAULT_PORT)
|
||||
, _server()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -43,7 +42,7 @@ WebServer::~WebServer()
|
||||
void WebServer::initServer()
|
||||
{
|
||||
Debug(_log, "Initialize %s-Webserver", _useSsl ? "https" : "http");
|
||||
_server = new QtHttpServer(this);
|
||||
_server.reset(new QtHttpServer(this));
|
||||
_server->setServerName(QStringLiteral("Hyperion %1-Webserver").arg(_useSsl ? "https" : "http"));
|
||||
|
||||
if (_useSsl)
|
||||
@@ -51,13 +50,13 @@ void WebServer::initServer()
|
||||
_server->setUseSecure();
|
||||
}
|
||||
|
||||
connect(_server, &QtHttpServer::started, this, &WebServer::onServerStarted);
|
||||
connect(_server, &QtHttpServer::stopped, this, &WebServer::onServerStopped);
|
||||
connect(_server, &QtHttpServer::error, this, &WebServer::onServerError);
|
||||
connect(_server.get(), &QtHttpServer::started, this, &WebServer::onServerStarted);
|
||||
connect(_server.get(), &QtHttpServer::stopped, this, &WebServer::onServerStopped);
|
||||
connect(_server.get(), &QtHttpServer::error, this, &WebServer::onServerError);
|
||||
|
||||
// create StaticFileServing
|
||||
_staticFileServing = new StaticFileServing(this);
|
||||
connect(_server, &QtHttpServer::requestNeedsReply, _staticFileServing, &StaticFileServing::onRequestNeedsReply);
|
||||
connect(_server.get(), &QtHttpServer::requestNeedsReply, _staticFileServing, &StaticFileServing::onRequestNeedsReply);
|
||||
|
||||
// init
|
||||
handleSettingsUpdate(settings::WEBSERVER, _config);
|
||||
@@ -83,11 +82,11 @@ void WebServer::onServerStarted(quint16 port)
|
||||
|
||||
void WebServer::onServerStopped()
|
||||
{
|
||||
Info(_log, "Stopped %s", _server->getServerName().toStdString().c_str());
|
||||
Info(_log, "%s stopped", _server->getServerName().toStdString().c_str());
|
||||
emit stateChange(false);
|
||||
}
|
||||
|
||||
void WebServer::onServerError(QString msg)
|
||||
void WebServer::onServerError(const QString& msg)
|
||||
{
|
||||
Error(_log, "%s", msg.toStdString().c_str());
|
||||
}
|
||||
@@ -112,7 +111,9 @@ void WebServer::handleSettingsUpdate(settings::type type, const QJsonDocument& c
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_baseUrl = WEBSERVER_DEFAULT_PATH;
|
||||
}
|
||||
|
||||
Debug(_log, "Set document root to: %s", _baseUrl.toUtf8().constData());
|
||||
_staticFileServing->setBaseUrl(_baseUrl);
|
||||
@@ -127,7 +128,9 @@ void WebServer::handleSettingsUpdate(settings::type type, const QJsonDocument& c
|
||||
|
||||
// eval if the port is available, will be incremented if not
|
||||
if (!_server->isListening())
|
||||
{
|
||||
NetUtils::portAvailable(_port, _log);
|
||||
}
|
||||
|
||||
// on ssl we want .key .cert and probably key password
|
||||
if (_useSsl)
|
||||
@@ -149,7 +152,9 @@ void WebServer::handleSettingsUpdate(settings::type type, const QJsonDocument& c
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
keyPath = WEBSERVER_DEFAULT_KEY_PATH;
|
||||
}
|
||||
|
||||
// check crtPath
|
||||
if ((crtPath != WEBSERVER_DEFAULT_CRT_PATH) && !crtPath.trimmed().isEmpty())
|
||||
@@ -162,7 +167,9 @@ void WebServer::handleSettingsUpdate(settings::type type, const QJsonDocument& c
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
crtPath = WEBSERVER_DEFAULT_CRT_PATH;
|
||||
}
|
||||
|
||||
// load and verify crt
|
||||
QFile cfile(crtPath);
|
||||
@@ -174,9 +181,13 @@ void WebServer::handleSettingsUpdate(settings::type type, const QJsonDocument& c
|
||||
// Filter for valid certs
|
||||
for (const auto& entry : cList) {
|
||||
if (!entry.isNull() && QDateTime::currentDateTime().daysTo(entry.expiryDate()) > 0)
|
||||
{
|
||||
validList.append(entry);
|
||||
}
|
||||
else
|
||||
{
|
||||
Error(_log, "The provided SSL certificate is invalid/not supported/reached expiry date ('%s')", crtPath.toUtf8().constData());
|
||||
}
|
||||
}
|
||||
|
||||
if (!validList.isEmpty()) {
|
||||
|
Reference in New Issue
Block a user