1
0
mirror of https://github.com/anope/anope.git synced 2026-06-27 11:56:37 +02:00

Fixed some issues and desyncs with creating empty permanent channels on startup & dropping empty channels

This commit is contained in:
Adam
2013-05-08 20:26:45 -04:00
parent 735f0ba6cf
commit 735e234c2c
11 changed files with 56 additions and 49 deletions
+11 -7
View File
@@ -254,35 +254,39 @@ void Server::Sync(bool sync_links)
{
bool created;
ci->c = Channel::FindOrCreate(ci->name, created, ci->time_registered);
if (ModeManager::FindChannelModeByName("PERM") != NULL)
{
ci->c->SetMode(NULL, "PERM");
if (created)
IRCD->SendChannel(ci->c);
ci->c->SetMode(NULL, "PERM");
}
else
{
if (!ci->bi)
ci->WhoSends()->Assign(NULL, ci);
if (ci->c->FindUser(ci->bi) == NULL)
ci->bi->Join(ci->c);
{
ChannelStatus status(Config->GetModule("botserv")->Get<const Anope::string>("botmodes"));
ci->bi->Join(ci->c, &status);
}
}
}
}
FOREACH_MOD(I_OnPreUplinkSync, OnPreUplinkSync(this));
IRCD->SendEOB();
Me->Sync(false);
FOREACH_MOD(I_OnUplinkSync, OnUplinkSync(this));
for (channel_map::const_iterator it = ChannelList.begin(), it_end = ChannelList.end(); it != it_end; ++it)
{
Channel *c = it->second;
c->Sync();
}
IRCD->SendEOB();
Me->Sync(false);
FOREACH_MOD(I_OnUplinkSync, OnUplinkSync(this));
if (!Anope::NoFork && Anope::AtTerm())
{
Log(LOG_TERMINAL) << "Successfully linked, launching into background...";