summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-02-16 21:36:35 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-02-16 21:36:35 +0000
commit531e67935ecb47c2d7658d715abdc523075e66bb (patch)
tree9a4db79ec3d35b27d0b3fb65c526c7b02044bcdf
parent177f5c59c4dfb86447212da516222c020264bc29 (diff)
Backport SendXLines() fix on netburst (don't buffer loads of lines at once), and fix: don't propegate K:Lines on netburst
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8948 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_spanningtree/netburst.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/modules/m_spanningtree/netburst.cpp b/src/modules/m_spanningtree/netburst.cpp
index 9e9d3a3b8..e9366ef71 100644
--- a/src/modules/m_spanningtree/netburst.cpp
+++ b/src/modules/m_spanningtree/netburst.cpp
@@ -151,7 +151,6 @@ void TreeSocket::SendFJoins(TreeServer* Current, Channel* c)
void TreeSocket::SendXLines(TreeServer* Current)
{
char data[MAXBUF];
- std::string buffer;
std::string n = this->Instance->Config->GetSID();
const char* sn = n.c_str();
@@ -165,18 +164,18 @@ void TreeSocket::SendXLines(TreeServer* Current)
{
for (LookupIter i = lookup->begin(); i != lookup->end(); ++i)
{
+ if (i->second->type == "K")
+ continue;
+
snprintf(data,MAXBUF,":%s ADDLINE %s %s %s %lu %lu :%s\r\n",sn, it->c_str(), i->second->Displayable(),
i->second->source,
(unsigned long)i->second->set_time,
(unsigned long)i->second->duration,
i->second->reason);
- buffer.append(data);
+ this->WriteLine(data);
}
}
}
-
- if (!buffer.empty())
- this->WriteLine(buffer);
}
/** Send channel modes and topics */