diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-08 15:38:59 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-08 15:38:59 +0000 |
commit | 922d4ebf7a27a6577d6b4f91e0f42ccdfa989455 (patch) | |
tree | de1a76fa9c7934f9dab301986b63a3cceea3b073 /src/modules | |
parent | 8d99003c221b7d6dcc04d0fc58629c243b48dbf0 (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.cpp | 11 | ||||
-rw-r--r-- | src/modules/m_sanick.cpp | 7 | ||||
-rw-r--r-- | src/modules/m_spanningtree.cpp | 6 |
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()); } } |