summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/inspircd.conf.example8
-rw-r--r--src/modules/m_spanningtree.cpp12
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<Link>::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)
{