diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_safelist.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/modules/m_safelist.cpp b/src/modules/m_safelist.cpp index b3ade5434..7441f0ea5 100644 --- a/src/modules/m_safelist.cpp +++ b/src/modules/m_safelist.cpp @@ -39,6 +39,8 @@ UserList listusers; /* vector of people doing a /list */ class ListTimer *timer; /** To create a timer which recurs every second, we inherit from InspTimer. + * InspTimer is only one-shot however, so at the end of each Tick() we simply + * insert another of ourselves into the pending queue :) */ class ListTimer : public InspTimer { @@ -52,7 +54,7 @@ class ListTimer : public InspTimer public: - ListTimer(InspIRCd* Instance, long interval) : InspTimer(interval,Instance->Time(), true), ServerInstance(Instance) + ListTimer(InspIRCd* Instance, long interval) : InspTimer(interval,Instance->Time()), ServerInstance(Instance) { ServerNameSize = 4 + strlen(ServerInstance->Config->ServerName); } @@ -141,7 +143,12 @@ class ListTimer : public InspTimer } } - if (!listusers.size()) + if (listusers.size()) + { + timer = new ListTimer(ServerInstance,1); + ServerInstance->Timers->AddTimer(timer); + } + else { timer = NULL; } |