From 300df2669e0c264fd1461695d49e6f45e16545cf Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 <0xFEEDC0DE64@gmail.com> Date: Thu, 26 Apr 2018 22:46:29 +0200 Subject: [PATCH] Implemented reboot --- relaisclient.cpp | 6 ++++++ relaisclient.h | 1 + relaiswebserver.cpp | 21 +++++++++++++-------- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/relaisclient.cpp b/relaisclient.cpp index 5f9dea4..d0c943b 100644 --- a/relaisclient.cpp +++ b/relaisclient.cpp @@ -68,6 +68,12 @@ void RelaisClient::toggle() m_status = QString(); } +void RelaisClient::reboot() +{ + m_socket->write(QByteArrayLiteral("r")); + m_status = QString(); +} + void RelaisClient::requestStatus() { m_socket->write(QByteArrayLiteral("s")); diff --git a/relaisclient.h b/relaisclient.h index fef9544..4db4000 100644 --- a/relaisclient.h +++ b/relaisclient.h @@ -27,6 +27,7 @@ public Q_SLOTS: void on(); void off(); void toggle(); + void reboot(); void requestStatus(); private Q_SLOTS: diff --git a/relaiswebserver.cpp b/relaiswebserver.cpp index ca685fa..19997bb 100644 --- a/relaiswebserver.cpp +++ b/relaiswebserver.cpp @@ -22,11 +22,10 @@ void RelaisWebserver::handleRequest(HttpClientConnection *connection, const Http HttpResponse response; response.protocol = request.protocol; response.statusCode = HttpResponse::StatusCode::BadRequest; - response.body = "Path does not start with /"; response.headers.insert(QStringLiteral("Server"), QStringLiteral("Hatschi Server 1.0")); response.headers.insert(QStringLiteral("Content-Type"), QStringLiteral("text/html")); - connection->sendResponse(response); + connection->sendResponse(response, tr("Path does not start with /")); return; } @@ -84,6 +83,12 @@ void RelaisWebserver::handleRequest(HttpClientConnection *connection, const Http redirectRoot(connection, request); return; } + else if(parts.at(3) == "reboot") + { + client->reboot(); + redirectRoot(connection, request); + return; + } else { handle404(connection, request); @@ -124,6 +129,8 @@ void RelaisWebserver::handleRoot(HttpClientConnection *connection, const HttpReq if(client->status() != QStringLiteral("off")) output.append("" % tr("off") % " "); + + output.append("" % tr("reboot") % " "); output.append(""); output.append("