summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2010-02-11 07:17:30 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2010-02-11 07:17:30 +0000
commitc6a4d51c006566dbbe959f3272c438ab740bac9c (patch)
treedd0e583372236bbb808ddd172497ca44f47c2d48
parentbaa663e5156d557b3771b8ef025f279d0ac4709c (diff)
Make UID modify its parameter on a nick collision so that services has an easier time understanding things
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12433 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/modules/m_spanningtree/uid.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/modules/m_spanningtree/uid.cpp b/src/modules/m_spanningtree/uid.cpp
index 5152ef274..7059d9603 100644
--- a/src/modules/m_spanningtree/uid.cpp
+++ b/src/modules/m_spanningtree/uid.cpp
@@ -33,7 +33,6 @@ CmdResult CommandUID::Handle(const parameterlist &params, User* serversrc)
time_t age_t = ConvToInt(params[1]);
time_t signon = ConvToInt(params[7]);
std::string empty;
- std::string nick(params[2]);
std::string modestr(params[8]);
TreeServer* remoteserver = Utils->FindServer(serversrc->server);
@@ -50,7 +49,7 @@ CmdResult CommandUID::Handle(const parameterlist &params, User* serversrc)
TreeSocket* sock = remoteserver->GetRoute()->GetSocket();
/* check for collision */
- user_hash::iterator iter = ServerInstance->Users->clientlist->find(nick);
+ user_hash::iterator iter = ServerInstance->Users->clientlist->find(params[2]);
if (iter != ServerInstance->Users->clientlist->end())
{
@@ -63,7 +62,7 @@ CmdResult CommandUID::Handle(const parameterlist &params, User* serversrc)
if (collide != 1)
{
/* remote client changed, make sure we change their nick for the hash too */
- nick = params[0];
+ const_cast<parameterlist&>(params)[2] = params[0];
}
}
@@ -79,8 +78,8 @@ CmdResult CommandUID::Handle(const parameterlist &params, User* serversrc)
{
return CMD_INVALID;
}
- (*(ServerInstance->Users->clientlist))[nick] = _new;
- _new->nick = nick;
+ (*(ServerInstance->Users->clientlist))[params[2]] = _new;
+ _new->nick = params[2];
_new->host = params[3];
_new->dhost = params[4];
_new->ident = params[5];