diff --git a/espremotemanager/espremotemanager.cpp b/espremotemanager/espremotemanager.cpp
index 2c04b47..3fbb49e 100644
--- a/espremotemanager/espremotemanager.cpp
+++ b/espremotemanager/espremotemanager.cpp
@@ -27,6 +27,10 @@ void EspRemoteManager::requestReceived(WebserverClientConnection &client, const
{
sendRootResponse(client, url, query);
}
+ else if (url.path() == "/rebootAll")
+ {
+ sendRebootAllResponse(client, url, query);
+ }
else if (url.path() == "/reboot")
{
sendRebootResponse(client, url, query);
@@ -65,6 +69,7 @@ void EspRemoteManager::sendRootResponse(WebserverClientConnection &client, const
""
"
"
"ESP Remote Manager
"
+ "Reboot all"
""
""
""
@@ -112,6 +117,15 @@ void EspRemoteManager::sendRootResponse(WebserverClientConnection &client, const
qWarning() << "sending response failed";
}
+void EspRemoteManager::sendRebootAllResponse(WebserverClientConnection &client, const QUrl &url, const QUrlQuery &query)
+{
+ for (auto client : m_clients)
+ client->reboot();
+
+ if (!client.sendFullResponse(200, "Ok", {{"Content-Type", "text/plain"}}, "peer reboot commands sent!"))
+ qWarning() << "sending response failed";
+}
+
void EspRemoteManager::sendRebootResponse(WebserverClientConnection &client, const QUrl &url, const QUrlQuery &query)
{
if (!query.hasQueryItem("peer"))
diff --git a/espremotemanager/espremotemanager.h b/espremotemanager/espremotemanager.h
index 2dac816..8f0dcff 100644
--- a/espremotemanager/espremotemanager.h
+++ b/espremotemanager/espremotemanager.h
@@ -24,6 +24,7 @@ private slots:
private:
void sendRootResponse(WebserverClientConnection &client, const QUrl &url, const QUrlQuery &query);
+ void sendRebootAllResponse(WebserverClientConnection &client, const QUrl &url, const QUrlQuery &query);
void sendRebootResponse(WebserverClientConnection &client, const QUrl &url, const QUrlQuery &query);
QWebSocketServer &m_websocketServer;