summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMorten Sorvig <msorvig@trolltech.com>2009-07-30 16:01:23 +0200
committerMorten Sorvig <msorvig@trolltech.com>2009-07-30 16:01:23 +0200
commit488f3e0e855dc3eefefdc946aff542c1d0dd3668 (patch)
treeca5469e6e4361a53f54e1c157a06987cbf7f5d01 /src
parentf246e8ab44f26babdc2b756132d29797cee5c735 (diff)
Add simple statistics page
Diffstat (limited to 'src')
-rw-r--r--src/webclientserver.cpp29
-rw-r--r--src/webclientserver.h5
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