diff options
author | Morten Sorvig <msorvig@trolltech.com> | 2009-07-30 16:01:23 +0200 |
---|---|---|
committer | Morten Sorvig <msorvig@trolltech.com> | 2009-07-30 16:01:23 +0200 |
commit | 488f3e0e855dc3eefefdc946aff542c1d0dd3668 (patch) | |
tree | ca5469e6e4361a53f54e1c157a06987cbf7f5d01 /src | |
parent | f246e8ab44f26babdc2b756132d29797cee5c735 (diff) |
Add simple statistics page
Diffstat (limited to 'src')
-rw-r--r-- | src/webclientserver.cpp | 29 | ||||
-rw-r--r-- | src/webclientserver.h | 5 |
2 files changed, 32 insertions, 2 deletions
diff --git a/src/webclientserver.cpp b/src/webclientserver.cpp index 3cbd05b..3b802c9 100644 --- a/src/webclientserver.cpp +++ b/src/webclientserver.cpp @@ -148,6 +148,8 @@ Server::Server(quint16 port) qDebug() << QString("Server running on: http://" + QHostInfo::localHostName() + ":" + QString::number(port) + "/"); qsrand(QDateTime::currentDateTime().toTime_t()); nextCookieId = qrand(); + bytesWritten = 0; + bytesRead = 0; } Server::~Server() @@ -188,7 +190,14 @@ void Server::dataOnSocket() DEBUG << ""; DEBUG << "request"; - HttpRequest request(socket); + QList<QByteArray> lines; + while (socket->canReadLine()) { + QByteArray line = socket->readLine(); + lines.append(line); + bytesRead += line.count(); + } + + HttpRequest request(lines); int sessionId = 0; @@ -261,13 +270,29 @@ void Server::dataOnSocket() } // DEBUG << "idle socket" << socket; return; + } else if (path.startsWith("/statistics")) { + response.setBody(createStatiticsPage()); + } // DEBUG << "socket write response"; // DEBUG << "response" << response.toText(); - socket->write(response.toText()); + QByteArray responseText = response.toText(); + bytesWritten += responseText.count(); + socket->write(responseText); // DEBUG << "socket write response done"; } + +QByteArray Server::createStatiticsPage() +{ + QByteArray stats; + stats += "<b> Statistics: </b><br><br>"; + stats += "Bytes transferred, dynamic content: <br>"; + stats += "Sent " + QByteArray::number(bytesWritten / 1024) + " K<br>"; + stats += "Received " + QByteArray::number(bytesRead / 1024) + " K<br>"; + return stats; +} + FileServer::FileServer() { allowedFileNames = QSet<QString>() diff --git a/src/webclientserver.h b/src/webclientserver.h index 6d12dd9..068b347 100644 --- a/src/webclientserver.h +++ b/src/webclientserver.h @@ -87,6 +87,11 @@ private: QHash<int, Session *> activeSessions; int nextCookieId; quint16 port; + + // statistics + int bytesRead; + int bytesWritten; + QByteArray createStatiticsPage(); }; class FileServer : public QObject |