From 52b48030d6bfe6e52951e88ad8eb05048048c984 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 11 Dec 2005 18:44:17 +0000 Subject: Fixed permenant xline propogation git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2314 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index b26bf536c..8b8b28092 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -125,7 +125,11 @@ extern std::vector glines; extern std::vector zlines; extern std::vector qlines; extern std::vector elines; - +extern std::vector pklines; +extern std::vector pglines; +extern std::vector pzlines; +extern std::vector pqlines; +extern std::vector pelines; /* Each server in the tree is represented by one class of * type TreeServer. A locally connected TreeServer can @@ -1001,6 +1005,26 @@ class TreeSocket : public InspSocket snprintf(data,MAXBUF,":%s ADDLINE E %s %s %lu %lu :%s",Srv->GetServerName().c_str(),i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); this->WriteLine(data); } + for (std::vector::iterator i = pzlines.begin(); i != pzlines.end(); i++) + { + snprintf(data,MAXBUF,":%s ADDLINE Z %s %s %lu %lu :%s",Srv->GetServerName().c_str(),i->ipaddr,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); + this->WriteLine(data); + } + for (std::vector::iterator i = pqlines.begin(); i != pqlines.end(); i++) + { + snprintf(data,MAXBUF,":%s ADDLINE Q %s %s %lu %lu :%s",Srv->GetServerName().c_str(),i->nick,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); + this->WriteLine(data); + } + for (std::vector::iterator i = pglines.begin(); i != pglines.end(); i++) + { + snprintf(data,MAXBUF,":%s ADDLINE G %s %s %lu %lu :%s",Srv->GetServerName().c_str(),i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); + this->WriteLine(data); + } + for (std::vector::iterator i = pelines.begin(); i != pelines.end(); i++) + { + snprintf(data,MAXBUF,":%s ADDLINE E %s %s %lu %lu :%s",Srv->GetServerName().c_str(),i->hostmask,i->source,(unsigned long)i->set_time,(unsigned long)i->duration,i->reason); + this->WriteLine(data); + } } /* Send channel modes and topics */ -- cgit v1.2.3