From 78474291ab99852dc92a43286c67f244c7292a31 Mon Sep 17 00:00:00 2001 From: brain Date: Mon, 27 Aug 2007 11:34:16 +0000 Subject: A few tidyups, and comment how the new constructors work (so that w00t doesnt wonder where the feck his strlcpys went) git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7875 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/treesocket1.cpp | 4 ++++ src/users.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/m_spanningtree/treesocket1.cpp b/src/modules/m_spanningtree/treesocket1.cpp index a0eb6ad7f..21882eda8 100644 --- a/src/modules/m_spanningtree/treesocket1.cpp +++ b/src/modules/m_spanningtree/treesocket1.cpp @@ -976,6 +976,10 @@ bool TreeSocket::ParseUID(const std::string &source, std::deque &pa tempnick = params[0].c_str(); } + /* IMPORTANT NOTE: For remote users, we pass the UUID in the constructor. This automatically + * sets it up in the UUID hash for us. + * TODO: Make this throw an exception maybe, on UUID collision? + */ userrec* _new = new userrec(this->Instance, params[0]); (*(this->Instance->clientlist))[tempnick] = _new; _new->SetFd(FD_MAGIC_NUMBER); diff --git a/src/users.cpp b/src/users.cpp index 5e7828d5b..476a4f1cd 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -860,12 +860,14 @@ void userrec::AddToWhoWas() /* add a client connection to the sockets list */ void userrec::AddClient(InspIRCd* Instance, int socket, int port, bool iscached, int socketfamily, sockaddr* ip) { + /* NOTE: Calling this one parameter constructor for userrec automatically + * allocates a new UUID and places it in the hash_map. + */ userrec* New = new userrec(Instance); int j = 0; Instance->unregistered_count++; - user_hash::iterator iter = Instance->clientlist->find(New->uuid); char ipaddr[MAXBUF]; #ifdef IPV6 if (socketfamily == AF_INET6) @@ -875,7 +877,9 @@ void userrec::AddClient(InspIRCd* Instance, int socket, int port, bool iscached, inet_ntop(AF_INET, &((const sockaddr_in*)ip)->sin_addr, ipaddr, sizeof(ipaddr)); (*(Instance->clientlist))[New->uuid] = New; - New->fd = socket; + New->SetFd(socket); + + /* The users default nick is their UUID */ strlcpy(New->nick, New->uuid, NICKMAX - 1); New->server = Instance->FindServerNamePtr(Instance->Config->ServerName); -- cgit v1.2.3