summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/timer.h5
-rw-r--r--src/inspircd.cpp2
-rw-r--r--src/timer.cpp4
3 files changed, 8 insertions, 3 deletions
diff --git a/include/timer.h b/include/timer.h
index dbf83c2c8..e28987234 100644
--- a/include/timer.h
+++ b/include/timer.h
@@ -14,6 +14,8 @@
#ifndef INSPIRCD_TIMER_H
#define INSPIRCD_TIMER_H
+class InspIRCd;
+
/** Timer class for one-second resolution timers
* InspTimer provides a facility which allows module
* developers to create one-shot timers. The timer
@@ -114,6 +116,9 @@ class TimerManager : public Extensible
/** Set when ticking timers, to prevent deletion while iterating
*/
bool CantDeleteHere;
+ /** Creating server instance
+ */
+ InspIRCd* ServerInstance;
private:
/** The current timer set, a map of timergroups
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 8f9bb4589..c7e261e3b 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -346,7 +346,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
this->OpenLog(argv, argc);
this->stats = new serverstats();
- this->Timers = new TimerManager();
+ this->Timers = new TimerManager(this);
this->Parser = new CommandParser(this);
this->XLines = new XLineManager(this);
Config->ClearStack();
diff --git a/src/timer.cpp b/src/timer.cpp
index 63c7b5874..c04107502 100644
--- a/src/timer.cpp
+++ b/src/timer.cpp
@@ -14,7 +14,7 @@
#include "inspircd.h"
#include "timer.h"
-TimerManager::TimerManager() : CantDeleteHere(false)
+TimerManager::TimerManager(InspIRCd* Instance) : CantDeleteHere(false), ServerInstance(Instance)
{
}
@@ -116,7 +116,7 @@ void TimerManager::AddTimer(InspTimer* T, long secs_from_now)
if (!secs_from_now)
time_to_trigger = T->GetTimer();
else
- time_to_trigger = secs_from_now + time(NULL);
+ time_to_trigger = secs_from_now + ServerInstance->Time();
timerlist::iterator found = Timers.find(time_to_trigger);