// Copyright 2021 Jeisson Hidalgo-Cespedes. Universidad de Costa Rica. CC BY 4.0 #include #include "HttpApp.hpp" #include "HttpRequest.hpp" #include "HttpResponse.hpp" void HttpApp::start() { // Default base class implementation does nothing } void HttpApp::stop() { // Default base class implementation does nothing } void HttpApp::serveHeader(HttpResponse& httpResponse, const std::string& title) { // Set HTTP response metadata (headers) httpResponse.setHeader("Server", "AttoServer v1.1"); httpResponse.setHeader("Content-type", "text/html; charset=ascii"); // Serve document header and title httpResponse.body() << "\n" << "\n" << " \n" << " " << title << "\n" << " \n" << "

" << title << "

\n"; } void HttpApp::addToHomepage(HttpRequest&, HttpResponse &) { } std::string HttpApp::sanitizeHtml(const std::string &text) { std::string result; // Replace special HTML characters with their corresponding entities for (const char c : text) { switch (c) { case '<': result += "<"; break; case '>': result += ">"; break; case '&': result += "&"; break; case '"': result += """; break; case '\'': result += "'"; break; default: result += c; break; } } return result; }