From 8a4d1c5088b6478fa9a2e8d2a37d85022cd3f0ba Mon Sep 17 00:00:00 2001 From: redPanther Date: Mon, 23 Jan 2017 23:21:04 +0100 Subject: [PATCH] implement 404 for webserver - this is a quick hack, should be refactored later (#378) --- libsrc/webconfig/StaticFileServing.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libsrc/webconfig/StaticFileServing.cpp b/libsrc/webconfig/StaticFileServing.cpp index 00e43bca..8796b365 100644 --- a/libsrc/webconfig/StaticFileServing.cpp +++ b/libsrc/webconfig/StaticFileServing.cpp @@ -73,6 +73,13 @@ static inline void printErrorToReply (QtHttpReply * reply, QString errorMessage) reply->appendRawData (errorMessage.toLocal8Bit ()); } +static inline void printError404ToReply (QtHttpReply * reply, QString errorMessage) +{ + reply->setStatusCode(QtHttpReply::NotFound); + reply->addHeader ("Content-Type", QByteArrayLiteral ("text/plain")); + reply->appendRawData (errorMessage.toLocal8Bit ()); +} + void StaticFileServing::onRequestNeedsReply (QtHttpRequest * request, QtHttpReply * reply) { QString command = request->getCommand (); @@ -103,7 +110,7 @@ void StaticFileServing::onRequestNeedsReply (QtHttpRequest * request, QtHttpRepl Q_INIT_RESOURCE(WebConfig); QFileInfo info(_baseUrl % "/" % path); - if ( path == "/" || path.isEmpty() || ! info.exists() ) + if ( path == "/" || path.isEmpty() ) { path = "index.html"; } @@ -134,7 +141,7 @@ void StaticFileServing::onRequestNeedsReply (QtHttpRequest * request, QtHttpRepl } else { - printErrorToReply (reply, "Requested file " % path % " couldn't be found !"); + printError404ToReply (reply, "404 Not Found\n" % path % " couldn't be found !"); } } else