summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chanserv.cpp13
-rw-r--r--src/main.cpp2
2 files changed, 11 insertions, 4 deletions
diff --git a/src/chanserv.cpp b/src/chanserv.cpp
index 9d8fb411a..338d0f311 100644
--- a/src/chanserv.cpp
+++ b/src/chanserv.cpp
@@ -837,17 +837,22 @@ ChanServTimer::ChanServTimer(Channel *chan) : Timer(Config->CSInhabit), c(chan)
{
if (c->ci)
c->ci->SetFlag(CI_INHABIT);
- ChanServ->Join(c);
+ if (!c->ci->bi)
+ ChanServ->Join(*c);
+ else if (!c->FindUser(c->ci->bi))
+ c->ci->bi->Join(*c);
}
void ChanServTimer::Tick(time_t)
{
- if (!c->ci)
+ if (!c || !c->ci)
return;
c->ci->UnsetFlag(CI_INHABIT);
- if (c->users.size() == 1 || c->ci->bi != ChanServ)
- ChanServ->Part(c);
+ if (!c->ci->bi)
+ ChanServ->Part(*c);
+ else if (c->users.size() == 1 || c->users.size() < Config->BSMinUsers)
+ c->ci->bi->Part(*c);
}
diff --git a/src/main.cpp b/src/main.cpp
index 26ebd65ba..a1417b197 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -71,6 +71,8 @@ time_t start_time;
/* Parameters and environment */
char **my_av, **my_envp;
+time_t Anope::CurTime = time(NULL);
+
/******** Local variables! ********/
/* Set to 1 after we've set everything up */