adaptation to qt 6.8

This commit is contained in:
2026-05-11 15:01:10 +02:00
parent 4950608291
commit dcca754a78
2 changed files with 46 additions and 6 deletions
+40 -6
View File
@@ -6,6 +6,7 @@
#include <QList>
#include <QtHttpServer/QHttpServer>
#include <QtHttpServer/QHttpServerRequest>
#include <QtHttpServer/QHttpServerResponder>
#include <QtMath>
#include <QImage>
#include <QTransform>
@@ -87,20 +88,32 @@ Pws2mqtt::~Pws2mqtt()
{
}
void missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder)
{
QString message = QString("404 Not Found: %1 n'existe pas").arg(request.url().path());
responder.sendResponse(QHttpServerResponse("text/plain; charset=utf-8", message.toUtf8(), QHttpServerResponder::StatusCode::NotFound));
}
void Pws2mqtt::init()
{
debug(DEBUGMACRO, "init http server", INFO);
httpServer->setMissingHandler([](const QHttpServerRequest &request, QHttpServerResponder &&responder)
{
httpServer->setMissingHandler(httpServer, missingHandler);
// httpServer->setMissingHandler([](const QHttpServerRequest &request, QHttpServerResponder &&responder)
/* {
(void) responder;
debug(DEBUGMACRO, "body " + request.url().toString(), WARNING);
return QHttpServerResponse("404 - Page non trouvée. Route par défaut.", QHttpServerResponse::StatusCode::NotFound);
//responder.write(QHttpServerResponse("404 - Page non trouvée. Route par défaut.", QHttpServerResponse::StatusCode::NotFound));
});
});*/
httpServer->route("/", [](const QHttpServerRequest &request)
{
#if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
QList<std::pair<QByteArray, QByteArray>> headersList = request.headers().toListOfPairs();
#else
QList<std::pair<QByteArray, QByteArray>> headersList = request.headers().toList();
#endif
debug(DEBUGMACRO, "Remote address" + request.remoteAddress().toString(), WARNING);
return QHttpServerResponse("text/plain", "Failed\n");
});
@@ -173,12 +186,33 @@ void Pws2mqtt::listeningHttp()
{
//QByteArray data;
debug (DEBUGMACRO, "listening http requests", DEBUG);
const auto port = httpServer->listen(QHostAddress::Any, 5000);
if (!port)
#if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0)
this->tcpServer = new QTcpServer(); //httpServer.server.listen(QHostAddress::Any, this->port);
if (!this->tcpServer->listen(QHostAddress::LocalHost, this->listenPort))
{
delete this->tcpServer;
debug(DEBUGMACRO , "TCPServer failed to listen on a port.", ERROR);
//return 0;
}else
{
if (!httpServer->bind(tcpServer))
{
debug(DEBUGMACRO, "Binding tcpserver to httpserver failed ", ERROR);
}else
{
debug(DEBUGMACRO, "Listening on port " + QString::number(this->tcpServer->serverPort ()), INFO);
}
}
#else
const auto listenPort = httpServer->listen(QHostAddress::Any, 5000);
#endif
if (!this->listenPort)
{
debug(DEBUGMACRO, "Http Server failed to listen on a port.", ERROR);
}
debug(DEBUGMACRO, "Listening on port " + QString::number(port), INFO);
debug(DEBUGMACRO, "Listening on port " + QString::number(listenPort), INFO);
}
void Pws2mqtt::parseData(QList<std::pair<QString, QString>> queryList)
+6
View File
@@ -1,8 +1,12 @@
#pragma once
#include "qabstracthttpserver.h"
#include "qhttpserver.h"
#include <QString>
#include <QByteArray>
#include <QObject>
#include <QtHttpServer/QHttpServerResponder>
#include <QtHttpServer>
#ifdef WITH_MQTT
#include <QtMqtt>
#include <QtMqtt/QMqttClient>
@@ -34,6 +38,7 @@ class Pws2mqtt : public QObject
Pws2mqtt();
~Pws2mqtt();
QTcpServer * tcpServer;
QString ProcName = "pws2mqtt"; // name of the proceesus in ps, top, pstree, ...;
FILE * logFh = nullptr;
QString listenHost = "0.0.0.0";
@@ -66,4 +71,5 @@ double windChill(double airT, double vent);
double calculerHumidex(double temperature, double humiditeRelative);
void notify (QString notif, QString priority = "low", QString inputPath = "", QString tag = "");
QString listProperties2notify (QMap <QByteArray, QString> propertyList, QHash <QByteArray, quint8> priority, quint8 minAlert = 0);
void missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder);