aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree/protocolinterface.cpp
diff options
context:
space:
mode:
authorGravatar brain2008-06-01 14:18:07 +0000
committerGravatar brain2008-06-01 14:18:07 +0000
commitada434820d2d81d8e4bcf633ebcbfef20606b51c (patch)
tree945c80ec070f872cd32cb8a8706079b28ce88cbc /src/modules/m_spanningtree/protocolinterface.cpp
parentForward port r9825: Fix bug found by the atheme migration testing: +V should ... (diff)
Add ProtocolInterface::Introduce() to prevent confusion over event ordering, and allow for more flexible protocol use
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9827 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_spanningtree/protocolinterface.cpp')
-rw-r--r--src/modules/m_spanningtree/protocolinterface.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/modules/m_spanningtree/protocolinterface.cpp b/src/modules/m_spanningtree/protocolinterface.cpp
index e586c7017..850a27c22 100644
--- a/src/modules/m_spanningtree/protocolinterface.cpp
+++ b/src/modules/m_spanningtree/protocolinterface.cpp
@@ -172,3 +172,27 @@ void SpanningTreeProtocolInterface::SendUserNotice(User* target, const std::stri
}
}
+void SpanningTreeProtocolInterface::Introduce(User* user)
+{
+ if (IS_LOCAL(user))
+ {
+ std::deque<std::string> params;
+ params.push_back(user->uuid);
+ params.push_back(ConvToStr(user->age));
+ params.push_back(user->nick);
+ params.push_back(user->host);
+ params.push_back(user->dhost);
+ params.push_back(user->ident);
+ params.push_back("+"+std::string(user->FormatModes()));
+ params.push_back(user->GetIPString());
+ params.push_back(ConvToStr(user->signon));
+ params.push_back(":"+std::string(user->fullname));
+ Utils->DoOneToMany(ServerInstance->Config->GetSID(), "UID", params);
+ }
+
+ TreeServer* SourceServer = Utils->FindServer(user->server);
+ if (SourceServer)
+ {
+ SourceServer->SetUserCount(1); // increment by 1
+ }
+}