From: brain Date: Wed, 1 Nov 2006 17:38:35 +0000 (+0000) Subject: New events for special. Event id's "new_server" and "lost_server". The data is a... X-Git-Tag: v2.0.23~6753 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=89a8a819facc3e6aed9c76cf21a6bb8096c1562f;p=user%2Fhenk%2Fcode%2Finspircd.git New events for special. Event id's "new_server" and "lost_server". The data is a pointer to a char* containing the server name. Eventally, i might expand this to include more data about the server such as its 'gecos' field etc, but not just yet. Let me know what data you want first. Event source is valid and will point at the protocol module. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5623 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/include/inspircd.h b/include/inspircd.h index 014f729b0..1a56978a2 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -211,14 +211,6 @@ class InspIRCd : public classbase /** Holds a string describing the last module error to occur */ char MODERR[MAXBUF]; - - /** This is an internal flag used by the mainloop - */ - bool expire_run; - - /** List of server names we've seen. - */ - servernamelist servernames; /** Remove a ModuleFactory pointer * @param j Index number of the ModuleFactory to remove @@ -348,6 +340,10 @@ class InspIRCd : public classbase FileLogger* Logger; public: + /** List of server names we've seen. + */ + servernamelist servernames; + /** Time this ircd was booted */ time_t startup_time; diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 8a65ea82a..8b115815d 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -1058,6 +1058,9 @@ class TreeSocket : public InspSocket { if ((Current) && (Current != Utils->TreeRoot)) { + Event rmode((char*)Current->GetName().c_str(), (Module*)Utils->Creator, "lost_server"); + rmode.Send(Instance); + std::deque params; params.push_back(Current->GetName()); params.push_back(":"+reason); @@ -3345,6 +3348,10 @@ class TreeSocket : public InspSocket sourceserv = this->InboundServerName; } this->Instance->SNO->WriteToSnoMask('l',"Received end of netburst from \2%s\2",sourceserv.c_str()); + + Event rmode((char*)sourceserv.c_str(), (Module*)Utils->Creator, "new_server"); + rmode.Send(Instance); + return true; } else