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;