From 9fad3ecb9215a0034bf407f192926b04cb5efaed Mon Sep 17 00:00:00 2001 From: danieldg Date: Sat, 24 Oct 2009 20:04:05 +0000 Subject: Create irc::sockets::cidr_mask git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11968 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_spanningtree/utils.cpp | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) (limited to 'src/modules/m_spanningtree/utils.cpp') 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::iterator i = Utils->ValidIPs.begin(); i != Utils->ValidIPs.end(); i++) { - for (std::vector::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! -- cgit v1.3.1-10-gc9f91