summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-24 20:04:05 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2009-10-24 20:04:05 +0000
commit9fad3ecb9215a0034bf407f192926b04cb5efaed (patch)
treebc3699d29c02e2d3c7a9825fd9ddfb385d301ba1 /src/modules
parent6b2ea833674bb3bfedb0f2e2af06efa25655e5f5 (diff)
Create irc::sockets::cidr_mask
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11968 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/m_clones.cpp2
-rw-r--r--src/modules/m_connectban.cpp8
-rw-r--r--src/modules/m_spanningtree/utils.cpp31
3 files changed, 13 insertions, 28 deletions
diff --git a/src/modules/m_clones.cpp b/src/modules/m_clones.cpp
index fac64f356..09aa1043b 100644
--- a/src/modules/m_clones.cpp
+++ b/src/modules/m_clones.cpp
@@ -46,7 +46,7 @@ class CommandClones : public Command
for (clonemap::iterator x = ServerInstance->Users->global_clones.begin(); x != ServerInstance->Users->global_clones.end(); x++)
{
if (x->second >= limit)
- user->WriteServ(clonesstr + " "+ ConvToStr(x->second) + " " + assign(x->first));
+ user->WriteServ(clonesstr + " "+ ConvToStr(x->second) + " " + x->first.str());
}
user->WriteServ(clonesstr + " END");
diff --git a/src/modules/m_connectban.cpp b/src/modules/m_connectban.cpp
index 735f3da99..276962b2d 100644
--- a/src/modules/m_connectban.cpp
+++ b/src/modules/m_connectban.cpp
@@ -81,7 +81,7 @@ class ModuleConnectBan : public Module
break;
}
- irc::string mask = assign(irc::sockets::mask(u->client_sa, range));
+ irc::sockets::cidr_mask mask(u->client_sa, range);
i = connects.find(mask);
if (i != connects.end())
@@ -91,15 +91,15 @@ class ModuleConnectBan : public Module
if (i->second >= threshold)
{
// Create zline for set duration.
- ZLine* zl = new ZLine(ServerInstance->Time(), banduration, ServerInstance->Config->ServerName.c_str(), "Connect flooding", mask.c_str());
+ ZLine* zl = new ZLine(ServerInstance->Time(), banduration, ServerInstance->Config->ServerName.c_str(), "Connect flooding", mask.str().c_str());
if (ServerInstance->XLines->AddLine(zl,NULL))
ServerInstance->XLines->ApplyLines();
else
delete zl;
ServerInstance->SNO->WriteGlobalSno('x',"Module m_connectban added Z:line on *@%s to expire on %s: Connect flooding",
- mask.c_str(), ServerInstance->TimeString(zl->expiry).c_str());
- ServerInstance->SNO->WriteGlobalSno('a', "Connect flooding from IP range %s (%d)", mask.c_str(), threshold);
+ mask.str().c_str(), ServerInstance->TimeString(zl->expiry).c_str());
+ ServerInstance->SNO->WriteGlobalSno('a', "Connect flooding from IP range %s (%d)", mask.str().c_str(), threshold);
connects.erase(i);
}
}
diff --git a/src/modules/m_spanningtree/utils.cpp b/src/modules/m_spanningtree/utils.cpp
index 723ff9352..da3417de9 100644
--- a/src/modules/m_spanningtree/utils.cpp
+++ b/src/modules/m_spanningtree/utils.cpp
@@ -29,34 +29,19 @@ ModResult ModuleSpanningTree::OnAcceptConnection(int newsock, ListenSocket* from
if (from->bind_tag->getString("type") != "servers")
return MOD_RES_PASSTHRU;
- bool found = false;
- int port;
- std::string incomingip;
- irc::sockets::satoap(*client, incomingip, port);
+ std::string incomingip = client->addr();
- found = (std::find(Utils->ValidIPs.begin(), Utils->ValidIPs.end(), incomingip) != Utils->ValidIPs.end());
- if (!found)
+ for (std::vector<std::string>::iterator i = Utils->ValidIPs.begin(); i != Utils->ValidIPs.end(); i++)
{
- for (std::vector<std::string>::iterator i = Utils->ValidIPs.begin(); i != Utils->ValidIPs.end(); i++)
+ if (*i == "*" || *i == incomingip || irc::sockets::cidr_mask(*i).match(*client))
{
- if (*i == "*" || irc::sockets::MatchCIDR(incomingip, *i))
- {
- found = true;
- break;
- }
- }
-
- if (!found)
- {
- ServerInstance->SNO->WriteToSnoMask('l', "Server connection from %s denied (no link blocks with that IP address)", incomingip.c_str());
- return MOD_RES_DENY;
+ /* we don't need to do anything with the pointer, creating it stores it in the necessary places */
+ new TreeSocket(Utils, newsock, from, client, server);
+ return MOD_RES_ALLOW;
}
}
-
- /* we don't need to do anything with the pointer, creating it stores it in the necessary places */
-
- new TreeSocket(Utils, newsock, from, client, server);
- return MOD_RES_ALLOW;
+ ServerInstance->SNO->WriteToSnoMask('l', "Server connection from %s denied (no link blocks with that IP address)", incomingip.c_str());
+ return MOD_RES_DENY;
}
/** Yay for fast searches!