diff options
| author | 2013-11-21 15:52:38 -0500 | |
|---|---|---|
| committer | 2013-11-21 15:52:38 -0500 | |
| commit | cc01e2144c2c9a0fd5c71c9a32300906aa14a246 (patch) | |
| tree | ff723f2f6dac22c9decd5b127b81d61a1dc301c6 /src/modules/m_spanningtree/utils.cpp | |
| parent | Disallow remote /MODULES for non-opers. (diff) | |
Allow multiple allowmasks in link blocks, #679
Diffstat (limited to 'src/modules/m_spanningtree/utils.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/utils.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp index 6c3ee703c..c9abbd008 100644 --- a/src/modules/m_spanningtree/utils.cpp +++ b/src/modules/m_spanningtree/utils.cpp @@ -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")); |
