Переглянути джерело

QW and Spam floodprot timers also fixed.

Mihawk 12 роки тому
батько
коміт
361462fcf6
1 змінених файлів з 14 додано та 5 видалено
  1. 14 5
      Client.cpp

+ 14 - 5
Client.cpp

@@ -21,8 +21,6 @@ Client::Client(App *app, ActiveClient* ac):
   myJoinMessagePrinted(false),
   myJoinMessageScheduled(false)
 {
-  myQWBroadcastFloodTime = myEndFloodTime;
-  mySpamBroadcastFloodTime = myEndFloodTime;
   myJoinMessageTimer->setSingleShot(true);
   myKeepNickTimer->setSingleShot(true);
 }
@@ -35,7 +33,10 @@ Client::~Client()
 void Client::connect(const char *host, quint16 port)
 {
   myJoinMessageScheduled = true; //Hi message only scheduled at bot connection
+
   myEndFloodTime = QTime::currentTime();
+  myQWBroadcastFloodTime = myEndFloodTime;
+  mySpamBroadcastFloodTime = myEndFloodTime;
 
   QWClient::connect(host, port);
 }
@@ -332,9 +333,17 @@ void Client::run()
     myKeepNickTimer->start(30000);
   }
 
-  /* Avoid wrap around */
-  if(QTime::currentTime().secsTo(myEndFloodTime) < -16000)
-    myEndFloodTime = QTime::currentTime();
+  /* Avoid wrap around of flood timers */
+  QTime currentTime = QTime::currentTime();
+
+  if(currentTime.secsTo(myEndFloodTime) < -16000)
+    myEndFloodTime = currentTime;
+
+  if(currentTime.secsTo(myQWBroadcastFloodTime) < -16000)
+    myQWBroadcastFloodTime = currentTime;
+
+  if(currentTime.secsTo(mySpamBroadcastFloodTime) < -16000)
+    mySpamBroadcastFloodTime = currentTime;
 
   QWClient::run();
 }