diff options
-rw-r--r-- | src/modules/m_spanningtree/resolvers.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/modules/m_spanningtree/resolvers.cpp b/src/modules/m_spanningtree/resolvers.cpp index 6d5875af2..ded0573af 100644 --- a/src/modules/m_spanningtree/resolvers.cpp +++ b/src/modules/m_spanningtree/resolvers.cpp @@ -105,14 +105,17 @@ SecurityIPResolver::SecurityIPResolver(Module* me, DNS::Manager* mgr, const std: void SecurityIPResolver::OnLookupComplete(const DNS::Query *r) { - const DNS::ResourceRecord &ans_record = r->answers[0]; - 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(ans_record.rdata); + for (std::vector<DNS::ResourceRecord>::const_iterator j = r->answers.begin(); j != r->answers.end(); ++j) + { + const DNS::ResourceRecord& ans_record = *j; + if (ans_record.type == this->question.type) + Utils->ValidIPs.push_back(ans_record.rdata); + } break; } } |