diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-02-16 21:36:35 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-02-16 21:36:35 +0000 |
commit | 531e67935ecb47c2d7658d715abdc523075e66bb (patch) | |
tree | 9a4db79ec3d35b27d0b3fb65c526c7b02044bcdf /src | |
parent | 177f5c59c4dfb86447212da516222c020264bc29 (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
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/m_spanningtree/netburst.cpp | 9 |
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 */ |