diff options
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()); } } |