From: peavey Date: Thu, 16 Oct 2008 22:53:14 +0000 (+0000) Subject: possible fix for bug #623, reported by MacGyver. Untested please test :D X-Git-Tag: v2.0.23~2454 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=d164d06d1aaa7fb92ccbbe957dd66082c28b5838;p=user%2Fhenk%2Fcode%2Finspircd.git possible fix for bug #623, reported by MacGyver. Untested please test :D git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10651 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 1cb269bdf..e526238ed 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -282,7 +282,23 @@ void UserManager::RemoveCloneCounts(User *user) unsigned long UserManager::GlobalCloneCount(User *user) { - clonemap::iterator x = global_clones.find(user->GetIPString()); + int range = 32; + switch (user->GetProtocolFamily()) + { +#ifdef SUPPORT_IP6LINKS + case AF_INET6: + { + range = ServerInstance->Config->c_ipv6_range; + } + break; +#endif + case AF_INET: + { + range = ServerInstance->Config->c_ipv4_range; + } + break; + } + clonemap::iterator x = global_clones.find(user->GetCIDRMask(range)); if (x != global_clones.end()) return x->second; else @@ -291,7 +307,23 @@ unsigned long UserManager::GlobalCloneCount(User *user) unsigned long UserManager::LocalCloneCount(User *user) { - clonemap::iterator x = local_clones.find(user->GetIPString()); + int range = 32; + switch (user->GetProtocolFamily()) + { +#ifdef SUPPORT_IP6LINKS + case AF_INET6: + { + range = ServerInstance->Config->c_ipv6_range; + } + break; +#endif + case AF_INET: + { + range = ServerInstance->Config->c_ipv4_range; + } + break; + } + clonemap::iterator x = local_clones.find(user->GetCIDRMask(range)); if (x != local_clones.end()) return x->second; else