From e420cae48c557786eaa0647bcfa96a6687e4f833 Mon Sep 17 00:00:00 2001 From: doitux Date: Mon, 17 Aug 2009 09:50:53 +0000 Subject: [PATCH] only reread chatcleaner config if it was modified --- src/chatcleaner/cleanerconfig.h | 2 ++ src/chatcleaner/cleanerserver.cpp | 12 ++++++++---- src/chatcleaner/cleanerserver.h | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/chatcleaner/cleanerconfig.h b/src/chatcleaner/cleanerconfig.h index 33e6bab4..4ef727be 100644 --- a/src/chatcleaner/cleanerconfig.h +++ b/src/chatcleaner/cleanerconfig.h @@ -34,6 +34,8 @@ public: ~CleanerConfig(); + std::string getConfigFileName() { return configFileName; } + void fillBuffer(); void writeBuffer() const; diff --git a/src/chatcleaner/cleanerserver.cpp b/src/chatcleaner/cleanerserver.cpp index 7da824b5..18fbf164 100644 --- a/src/chatcleaner/cleanerserver.cpp +++ b/src/chatcleaner/cleanerserver.cpp @@ -11,7 +11,7 @@ using namespace std; -CleanerServer::CleanerServer(): config(0), blockConnection(false) +CleanerServer::CleanerServer(): config(0), blockConnection(false), secondsSinceLastConfigChange(0) { config = new CleanerConfig; @@ -170,9 +170,13 @@ void CleanerServer::socketStateChanged(QAbstractSocket::SocketState state) { } void CleanerServer::refreshConfig() { - - config->fillBuffer(); - myMessageFilter->refreshConfig(); + + QFileInfo configFileInfo(QString::fromUtf8(config->getConfigFileName().c_str())); + + if(configFileInfo.lastModified().secsTo(QDateTime::currentDateTime()) < 20) { + config->fillBuffer(); + myMessageFilter->refreshConfig(); + } } void CleanerServer::sendMessageToClient(InternalChatCleanerPacket &msg) diff --git a/src/chatcleaner/cleanerserver.h b/src/chatcleaner/cleanerserver.h index b5071109..ee70dfe0 100644 --- a/src/chatcleaner/cleanerserver.h +++ b/src/chatcleaner/cleanerserver.h @@ -36,6 +36,8 @@ private: unsigned char m_recvBuf[2*MAX_CLEANER_PACKET_SIZE]; unsigned m_recvBufUsed; + + int secondsSinceLastConfigChange; }; #endif // CLEANERSERVER_H