summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
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());
}
}