From b254d3d034d5e16326404d253c8574bea9b711d4 Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 28 Jun 2006 10:59:47 +0000 Subject: [PATCH] More stuff for allowing hostnames in and again - note there is a FIXME here. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4076 e03df62e-2008-0410-955e-edbf42e46eb7 --- docs/inspircd.conf.example | 8 +------- src/modules/m_spanningtree.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/inspircd.conf.example b/docs/inspircd.conf.example index 76ab8458f..df2c26aee 100644 --- a/docs/inspircd.conf.example +++ b/docs/inspircd.conf.example @@ -351,12 +351,6 @@ # that server to operoverride modes. This should only be used for # # services and protected oper servers! # # # -# IMPORTANT NOTE: When specifying the ip address and/or host, the # -# server software will prioritize RESOLVED hostnames above ip # -# addresses, so for example if your target server resolves to a.b.com # -# you MUST put a.b.com into your link block, and NOT the IP address # -# of a.b.com. The system uses reverse resolution. # -# # # ____ _ _____ _ _ ____ _ _ _ # # | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | # # | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | # @@ -576,7 +570,7 @@ somaxconn="128" softlimit="128" operonlystats="oclgkz" - operspywhois="no" + operspywhois="no" customversion="" maxtargets="20" hidesplits="no" diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index e15ac11b7..44786923c 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -2705,6 +2705,7 @@ class TreeSocket : public InspSocket * IPs for which we don't have a link block. */ bool found = false; + char resolved_host[MAXBUF]; vector::iterator i; for (i = LinkBlocks.begin(); i != LinkBlocks.end(); i++) { @@ -2713,6 +2714,17 @@ class TreeSocket : public InspSocket found = true; break; } + /* XXX: Fixme: blocks for a very short amount of time, + * we should cache these on rehash/startup + */ + if (CleanAndResolve(resolved_host,i->IPAddr.c_str(),true)) + { + if (std::string(resolved_host) == ip) + { + found = true; + break; + } + } } if (!found) { -- 2.39.2