* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd: (C) 2002-2008 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
*
* This program is free but copyrighted software; see
* the file COPYING for details.
#include "commands/cmd_whois.h"
#include "commands/cmd_stats.h"
#include "socket.h"
-#include "wildcard.h"
#include "xline.h"
#include "transport.h"
VersionString.clear();
ServerUserCount = ServerOperCount = 0;
StartBurst = rtt = 0;
- Warned = Hidden = DupError = false;
+ Warned = Hidden = false;
VersionString = ServerInstance->GetVersionString();
SetID(id);
}
Route = NULL;
Socket = NULL; /* Fix by brain */
StartBurst = rtt = 0;
- Warned = Hidden = DupError = false;
+ Warned = Hidden = false;
AddHashEntry();
SetID(id);
}
bursting = false;
VersionString.clear();
ServerUserCount = ServerOperCount = 0;
- this->SetNextPingTime(time(NULL) + Utils->PingFreq);
+ this->SetNextPingTime(ServerInstance->Time() + Utils->PingFreq);
this->SetPingFlag();
- DupError = false;
+ Warned = false;
StartBurst = rtt = 0;
timeval t;
return sid;
}
-void TreeServer::FinishBurst()
+void TreeServer::FinishBurstInternal()
{
- if (this->bursting)
+ this->bursting = false;
+ for(unsigned int q=0; q < ChildCount(); q++)
{
- this->bursting = false;
- ServerInstance->XLines->ApplyLines();
- timeval t;
- gettimeofday(&t, NULL);
- long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
- unsigned long bursttime = ts - this->StartBurst;
- ServerInstance->SNO->WriteToSnoMask('l', "Received end of netburst from \2%s\2 (burst time: %lu %s)", ServerName.c_str(), (bursttime > 1000 ? bursttime / 1000 : bursttime), (bursttime > 1000 ? "secs" : "msecs"));
- Event rmode((char*)ServerName.c_str(), (Module*)Utils->Creator, "new_server");
- rmode.Send(ServerInstance);
+ TreeServer* child = GetChild(q);
+ child->FinishBurstInternal();
}
}
-void TreeServer::SetID(const std::string &id)
+void TreeServer::FinishBurst()
{
- ServerInstance->Logs->Log("m_spanningtree",DEBUG, "Setting SID to " + id);
- sid = id;
- server_hash::iterator iter = Utils->sidlist.find(sid);
- if (iter == Utils->sidlist.end())
- Utils->sidlist[sid] = this;
- else
- DupError = true;
+ FinishBurstInternal();
+ ServerInstance->XLines->ApplyLines();
+ timeval t;
+ gettimeofday(&t, NULL);
+ long ts = (t.tv_sec * 1000) + (t.tv_usec / 1000);
+ unsigned long bursttime = ts - this->StartBurst;
+ ServerInstance->SNO->WriteToSnoMask('l', "Received end of netburst from \2%s\2 (burst time: %lu %s)", ServerName.c_str(), (bursttime > 1000 ? bursttime / 1000 : bursttime), (bursttime > 1000 ? "secs" : "msecs"));
+ Event rmode((char*)ServerName.c_str(), (Module*)Utils->Creator, "new_server");
+ rmode.Send(ServerInstance);
}
-bool TreeServer::DuplicateID()
+void TreeServer::SetID(const std::string &id)
{
- return DupError;
+ ServerInstance->Logs->Log("m_spanningtree",DEBUG, "Setting SID to " + id);
+ sid = id;
+ Utils->sidlist[sid] = this;
}
int TreeServer::QuitUsers(const std::string &reason)
if (!IS_LOCAL(a))
{
if (ServerInstance->Config->HideSplits)
- User::QuitUser(ServerInstance, a, "*.net *.split", reason_s);
+ ServerInstance->Users->QuitUser(a, "*.net *.split", reason_s);
else
- User::QuitUser(ServerInstance, a, reason_s);
+ ServerInstance->Users->QuitUser(a, reason_s);
if (this->Utils->quiet_bursts)
ServerInstance->GlobalCulls.MakeSilent(a);
if (iter != Utils->sidlist.end())
Utils->sidlist.erase(iter);
}
-
-