summaryrefslogtreecommitdiff
path: root/src/modules/m_spanningtree
diff options
context:
space:
mode:
authorattilamolnar <attilamolnar@hush.com>2012-06-11 15:08:10 +0200
committerattilamolnar <attilamolnar@hush.com>2012-06-11 15:08:10 +0200
commit70ad57e2fdae40c8641b5c5e1fd07a8f07dfeb81 (patch)
tree9382f4364191e7a29d0b79004dfb1d7624410eb2 /src/modules/m_spanningtree
parentbd2236348ab57ddb358c770002b75291e2f931bd (diff)
m_spanningtree Only add a resolved server IP as valid if it still exists when the lookup completes
Diffstat (limited to 'src/modules/m_spanningtree')
-rw-r--r--src/modules/m_spanningtree/resolvers.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/modules/m_spanningtree/resolvers.cpp b/src/modules/m_spanningtree/resolvers.cpp
index be185a28f..b69c5c29e 100644
--- a/src/modules/m_spanningtree/resolvers.cpp
+++ b/src/modules/m_spanningtree/resolvers.cpp
@@ -87,7 +87,15 @@ SecurityIPResolver::SecurityIPResolver(Module* me, SpanningTreeUtilities* U, con
void SecurityIPResolver::OnLookupComplete(const std::string &result, unsigned int ttl, bool cached)
{
- Utils->ValidIPs.push_back(result);
+ for (std::vector<reference<Link> >::iterator i = Utils->LinkBlocks.begin(); i != Utils->LinkBlocks.end(); ++i)
+ {
+ Link* L = *i;
+ if (L->IPAddr == host)
+ {
+ Utils->ValidIPs.push_back(result);
+ break;
+ }
+ }
}
void SecurityIPResolver::OnError(ResolverError e, const std::string &errormessage)