summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-08 15:38:59 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-08 15:38:59 +0000
commit922d4ebf7a27a6577d6b4f91e0f42ccdfa989455 (patch)
treede1a76fa9c7934f9dab301986b63a3cceea3b073 /src/modules
parent8d99003c221b7d6dcc04d0fc58629c243b48dbf0 (diff)
userrec::UpdateNickHash(), userrec::ForceNickChange(), userrec::FullConnect()
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4793 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_nicklock.cpp11
-rw-r--r--src/modules/m_sanick.cpp7
-rw-r--r--src/modules/m_spanningtree.cpp6
3 files changed, 17 insertions, 7 deletions
diff --git a/src/modules/m_nicklock.cpp b/src/modules/m_nicklock.cpp
index 315f8390e..36bf0598d 100644
--- a/src/modules/m_nicklock.cpp
+++ b/src/modules/m_nicklock.cpp
@@ -55,11 +55,12 @@ class cmd_nicklock : public command_t
{
// give them a lock flag
Srv->SendOpers(std::string(user->nick)+" used NICKLOCK to change and hold "+std::string(parameters[0])+" to "+parameters[1]);
- Srv->ChangeUserNick(source,std::string(parameters[1]));
- // only attempt to set their lockflag after we know the change succeeded
- source = Srv->FindNick(std::string(parameters[1]));
- if (source)
- source->Extend("nick_locked", "ON");
+ if (!source->ForceNickChange(parameters[1]))
+ {
+ userrec::QuitUser(source, "Nickname collision");
+ return;
+ }
+ source->Extend("nick_locked", "ON");
}
}
}
diff --git a/src/modules/m_sanick.cpp b/src/modules/m_sanick.cpp
index 09b585b14..561bca613 100644
--- a/src/modules/m_sanick.cpp
+++ b/src/modules/m_sanick.cpp
@@ -50,7 +50,12 @@ class cmd_sanick : public command_t
// FIX by brain: Cant use source->nick here because if it traverses a server link then
// source->nick becomes invalid as the object data moves in memory.
Srv->SendOpers(std::string(user->nick)+" used SANICK to change "+std::string(parameters[0])+" to "+parameters[1]);
- Srv->ChangeUserNick(source,std::string(parameters[1]));
+ if (!source->ForceNickChange(parameters[1]))
+ {
+ /* We couldnt change the nick */
+ userrec::QuitUser(source, "Nickname collision");
+ return;
+ }
}
}
}
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp
index 491c3c471..1e908f07b 100644
--- a/src/modules/m_spanningtree.cpp
+++ b/src/modules/m_spanningtree.cpp
@@ -2014,7 +2014,11 @@ class TreeSocket : public InspSocket
/* This is not required as one is sent in OnUserPostNick below
*/
//DoOneToMany(u->nick,"NICK",par);
- Srv->ChangeUserNick(u,params[1]);
+ if (!u->ForceNickChange(params[1].c_str()))
+ {
+ userrec::QuitUser(u, "Nickname collision");
+ return true;
+ }
u->age = atoi(params[2].c_str());
}
}