mirror of
https://github.com/anope/anope.git
synced 2026-06-26 02:06:39 +02:00
Speed up akill xline checks
Cache xline nick, user, host, etc instead of rebuilding it everytime its requested. Store users ip in sockaddr form and not string form to prevent having to rebuild sockaddrs when checking xlines. Also do not try to convert empty config values in Config::Get as this can be rather common if a non string configuration value is not set, and the cost of the ConvertException is great.
This commit is contained in:
+8
-7
@@ -96,9 +96,9 @@ bool sockaddrs::ipv6() const
|
||||
return sa.sa_family == AF_INET6;
|
||||
}
|
||||
|
||||
bool sockaddrs::operator()() const
|
||||
bool sockaddrs::valid() const
|
||||
{
|
||||
return valid();
|
||||
return size() != 0;
|
||||
}
|
||||
|
||||
bool sockaddrs::operator==(const sockaddrs &other) const
|
||||
@@ -180,11 +180,6 @@ void sockaddrs::ntop(int type, const void *src)
|
||||
this->clear();
|
||||
}
|
||||
|
||||
bool sockaddrs::valid() const
|
||||
{
|
||||
return size() != 0;
|
||||
}
|
||||
|
||||
cidr::cidr(const Anope::string &ip)
|
||||
{
|
||||
bool ipv6 = ip.find(':') != Anope::string::npos;
|
||||
@@ -221,6 +216,12 @@ cidr::cidr(const Anope::string &ip, unsigned char len)
|
||||
this->cidr_len = len;
|
||||
}
|
||||
|
||||
cidr::cidr(const sockaddrs &a, unsigned char len) : addr(a)
|
||||
{
|
||||
this->cidr_ip = a.addr();
|
||||
this->cidr_len = len;
|
||||
}
|
||||
|
||||
Anope::string cidr::mask() const
|
||||
{
|
||||
if ((this->addr.ipv6() && this->cidr_len == 128) || (!this->addr.ipv6() && this->cidr_len == 32))
|
||||
|
||||
Reference in New Issue
Block a user