summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-10-25 12:21:14 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-10-25 12:21:14 +0000
commitadad79af7669a698d037160f1e6f2d69f59a5ed3 (patch)
tree3f306aa374ee03f915b97e56131b227189d21d10 /src
parent30b7a1bf7fb0b422a6fd674f0cce95b3b0f92673 (diff)
Move spanningtree to use OnChangeLocalUserHost instead of OnChangeHost, this makes more sense, and also means we can call OnChangeHost for remote clients too, making it actually match it's documentation for the first time ever!
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10702 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_spanningtree/main.cpp8
-rw-r--r--src/modules/m_spanningtree/main.h2
-rw-r--r--src/users.cpp3
3 files changed, 6 insertions, 7 deletions
diff --git a/src/modules/m_spanningtree/main.cpp b/src/modules/m_spanningtree/main.cpp
index 86d511a2a..e714c9c13 100644
--- a/src/modules/m_spanningtree/main.cpp
+++ b/src/modules/m_spanningtree/main.cpp
@@ -49,7 +49,7 @@ ModuleSpanningTree::ModuleSpanningTree(InspIRCd* Me)
{
I_OnPreCommand, I_OnGetServerDescription, I_OnUserInvite, I_OnPostLocalTopicChange,
I_OnWallops, I_OnUserNotice, I_OnUserMessage, I_OnBackgroundTimer,
- I_OnUserJoin, I_OnChangeHost, I_OnChangeName, I_OnUserPart,
+ I_OnUserJoin, I_OnChangeLocalUserHost, I_OnChangeName, I_OnUserPart,
I_OnUserQuit, I_OnUserPostNick, I_OnUserKick, I_OnRemoteKill, I_OnRehash,
I_OnOper, I_OnAddLine, I_OnDelLine, I_ProtoSendMode, I_OnMode,
I_OnStats, I_ProtoSendMetaData, I_OnEvent, I_OnSetAway, I_OnPostCommand
@@ -617,14 +617,12 @@ void ModuleSpanningTree::OnUserJoin(User* user, Channel* channel, bool sync, boo
}
}
-void ModuleSpanningTree::OnChangeHost(User* user, const std::string &newhost)
+int ModuleSpanningTree::OnChangeLocalUserHost(User* user, const std::string &newhost)
{
- // only occurs for local clients
- if (user->registered != REG_ALL)
- return;
std::deque<std::string> params;
params.push_back(newhost);
Utils->DoOneToMany(user->uuid,"FHOST",params);
+ return 0;
}
void ModuleSpanningTree::OnChangeName(User* user, const std::string &gecos)
diff --git a/src/modules/m_spanningtree/main.h b/src/modules/m_spanningtree/main.h
index 8cfcaaa02..363dfdef2 100644
--- a/src/modules/m_spanningtree/main.h
+++ b/src/modules/m_spanningtree/main.h
@@ -162,7 +162,7 @@ class ModuleSpanningTree : public Module
virtual void OnUserMessage(User* user, void* dest, int target_type, const std::string &text, char status, const CUList &exempt_list);
virtual void OnBackgroundTimer(time_t curtime);
virtual void OnUserJoin(User* user, Channel* channel, bool sync, bool &silent);
- virtual void OnChangeHost(User* user, const std::string &newhost);
+ virtual int OnChangeLocalUserHost(User* user, const std::string &newhost);
virtual void OnChangeName(User* user, const std::string &gecos);
virtual void OnUserPart(User* user, Channel* channel, std::string &partmessage, bool &silent);
virtual void OnUserQuit(User* user, const std::string &reason, const std::string &oper_message);
diff --git a/src/users.cpp b/src/users.cpp
index 784783086..bb427523a 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -1672,9 +1672,10 @@ bool User::ChangeDisplayedHost(const char* shost)
FOREACH_RESULT(I_OnChangeLocalUserHost,OnChangeLocalUserHost(this,shost));
if (MOD_RESULT)
return false;
- FOREACH_MOD(I_OnChangeHost,OnChangeHost(this,shost));
}
+ FOREACH_MOD(I_OnChangeHost, OnChangeHost(this,shost));
+
int MOD_RESULT = 0;
FOREACH_RESULT(I_OnHostCycle, OnHostCycle(this));