summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-01 17:38:35 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-11-01 17:38:35 +0000
commit89a8a819facc3e6aed9c76cf21a6bb8096c1562f (patch)
treeb74ec2e035762205b83d54bac100fc7eb37ab29d
parent5515872a2349be06014282b09eb77cf012a76172 (diff)
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
-rw-r--r--include/inspircd.h12
-rw-r--r--src/modules/m_spanningtree.cpp7
2 files changed, 11 insertions, 8 deletions
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<std::string> 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