]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/usermanager.cpp
Fix mistakenly using Clang instead of GCC on older FreeBSD versions.
[user/henk/code/inspircd.git] / src / usermanager.cpp
index 076277a33dcc5ffb4f22cdfe9592618237ef9bb1..76446c5b57fb07371adaa9b6730e6f335d7e0805 100644 (file)
@@ -72,7 +72,7 @@ void UserManager::AddUser(int socket, ListenSocket* via, irc::sockets::sockaddrs
        (*(this->clientlist))[New->nick] = New;
 
        New->registered = REG_NONE;
-       New->signon = ServerInstance->Time() + ServerInstance->Config->dns_timeout;
+       New->signon = ServerInstance->Time();
        New->lastping = 1;
 
        ServerInstance->Users->AddLocalClone(New);
@@ -287,6 +287,22 @@ void UserManager::RemoveCloneCounts(User *user)
        }
 }
 
+void UserManager::RehashCloneCounts()
+{
+       local_clones.clear();
+       global_clones.clear();
+
+       const user_hash& hash = *ServerInstance->Users->clientlist;
+       for (user_hash::const_iterator i = hash.begin(); i != hash.end(); ++i)
+       {
+               User* u = i->second;
+
+               if (IS_LOCAL(u))
+                       AddLocalClone(u);
+               AddGlobalClone(u);
+       }
+}
+
 unsigned long UserManager::GlobalCloneCount(User *user)
 {
        clonemap::iterator x = global_clones.find(user->GetCIDRMask());