void StaticServer::handleFileGet(HttpRequest &request, HttpResponse &response) { qDebug() << "-----------%%%" << request.getHeader().getPath(); bool compress = false; if (request.getHeader().getHeaderInfo().contains("Accept-Encoding") ) { if (request.getHeader().getHeaderInfo()["Accept-Encoding"]->contains("gzip")) { compress = true; } } QByteArray fileContent; QString mimeType; QString md5; if (m_staticFileServer.getFileByPath(request.getHeader().getPath(), fileContent, mimeType, md5, StaticFileServer::FileType::UNSPECIFIED, true, compress)) { response << fileContent; if (compress) { QSharedPointer<QString> gzipstr(new QString("gzip")); response.setHeader("Content-Encoding", gzipstr); } response.finish(mimeType); } else { response.setStatusCode(404); response << "can't find the file!\n"; response.finish(); } }
void Worker::handleConsole(HttpRequest &request, HttpResponse &response) { if (request.getHeader().getHeaderInfo().contains("swiftly-admin")) { QString pass = *request.getHeader().getHeaderInfo()["swiftly-admin"]; QByteArray hash = QCryptographicHash::hash(pass.toUtf8(), QCryptographicHash::Sha512); if (hash.toHex() == m_adminPassHash) { if (request.getHeader().hasQueries() && request.getHeader().getQueries().contains("cmd")) { QString cmd = *request.getHeader().getQueries()["cmd"]; if (cmd == "shutdown") { emit shutdown(); } response.setStatusCode(200); response << "done!"; response.finish(); } else { response.setStatusCode(200); response << tem.c_str(); response.finish(); } return; } } response.setStatusCode(404); response << "authentication failed"; response.finish(); }