- User* _new = NULL;
- try
- {
- _new = new User(this->Instance, params[0]);
- }
- catch (...)
- {
- SendError("Protocol violation - Duplicate UUID '" + params[0] + "' on introduction of new user");
- return false;
- }
- (*(this->Instance->Users->clientlist))[tempnick] = _new;
- _new->SetFd(FD_MAGIC_NUMBER);
- strlcpy(_new->nick, tempnick, NICKMAX - 1);
- strlcpy(_new->host, params[3].c_str(),64);
- strlcpy(_new->dhost, params[4].c_str(),64);
- _new->server = this->Instance->FindServerNamePtr(remoteserver->GetName().c_str());
- strlcpy(_new->ident, params[5].c_str(),IDENTMAX + 1);
- strlcpy(_new->fullname, params[9].c_str(),MAXGECOS);
+ RemoteUser* _new = new SpanningTree::RemoteUser(params[0], remoteserver);
+ ServerInstance->Users->clientlist[params[2]] = _new;
+ _new->nick = params[2];
+ _new->ChangeRealHost(params[3], false);
+ _new->ChangeDisplayedHost(params[4]);
+ _new->ident = params[5];
+ _new->fullname = params.back();