diff options
author | attilamolnar <attilamolnar@hush.com> | 2012-06-11 15:08:10 +0200 |
---|---|---|
committer | attilamolnar <attilamolnar@hush.com> | 2012-06-11 15:08:10 +0200 |
commit | 70ad57e2fdae40c8641b5c5e1fd07a8f07dfeb81 (patch) | |
tree | 9382f4364191e7a29d0b79004dfb1d7624410eb2 /src/modules/m_spanningtree | |
parent | bd2236348ab57ddb358c770002b75291e2f931bd (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.cpp | 10 |
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) |