adaptation to qt 6.8
This commit is contained in:
+40
-6
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user