mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 02:59:01 -04:00
Allow multiple allowmasks in link blocks, #679
This commit is contained in:
parent
d96b9715d1
commit
cc01e2144c
@ -29,7 +29,7 @@
|
||||
|
||||
# allowmask: Range of IP addresses to allow for this link.
|
||||
# Can be a CIDR (see example).
|
||||
allowmask="69.58.44.0/24"
|
||||
allowmask="69.58.44.0/24 127.0.0.0/8"
|
||||
|
||||
# timeout: If defined, this option defines how long the server
|
||||
# will wait to consider the connect attempt failed and try the
|
||||
|
@ -30,7 +30,7 @@ class Link : public refcountbase
|
||||
std::string SendPass;
|
||||
std::string RecvPass;
|
||||
std::string Fingerprint;
|
||||
std::string AllowMask;
|
||||
std::vector<std::string> AllowMasks;
|
||||
bool HiddenFromStats;
|
||||
std::string Hook;
|
||||
int Timeout;
|
||||
|
@ -227,8 +227,7 @@ void SpanningTreeUtilities::RefreshIPCache()
|
||||
continue;
|
||||
}
|
||||
|
||||
if (L->AllowMask.length())
|
||||
ValidIPs.push_back(L->AllowMask);
|
||||
std::copy(L->AllowMasks.begin(), L->AllowMasks.end(), std::back_inserter(ValidIPs));
|
||||
|
||||
irc::sockets::sockaddrs dummy;
|
||||
bool ipvalid = irc::sockets::aptosa(L->IPAddr, L->Port, dummy);
|
||||
@ -277,7 +276,11 @@ void SpanningTreeUtilities::ReadConfiguration()
|
||||
reference<Link> L = new Link(tag);
|
||||
std::string linkname = tag->getString("name");
|
||||
L->Name = linkname.c_str();
|
||||
L->AllowMask = tag->getString("allowmask");
|
||||
|
||||
irc::spacesepstream sep = tag->getString("allowmask");
|
||||
for (std::string s; sep.GetToken(s);)
|
||||
L->AllowMasks.push_back(s);
|
||||
|
||||
L->IPAddr = tag->getString("ipaddr");
|
||||
L->Port = tag->getInt("port");
|
||||
L->SendPass = tag->getString("sendpass", tag->getString("password"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user