From 14556541bb12fda6e7af8273458f680386e9c438 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 16 Aug 2016 12:43:40 -0400 Subject: core_dns Make question a member of request, move common FindAnswerOfType to be a member of query --- src/modules/m_spanningtree/resolvers.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/modules/m_spanningtree/resolvers.cpp') diff --git a/src/modules/m_spanningtree/resolvers.cpp b/src/modules/m_spanningtree/resolvers.cpp index 3d04a5085..6682b8dbe 100644 --- a/src/modules/m_spanningtree/resolvers.cpp +++ b/src/modules/m_spanningtree/resolvers.cpp @@ -42,7 +42,12 @@ ServernameResolver::ServernameResolver(DNS::Manager* mgr, const std::string& hos void ServernameResolver::OnLookupComplete(const DNS::Query *r) { - const DNS::ResourceRecord &ans_record = r->answers[0]; + const DNS::ResourceRecord* const ans_record = r->FindAnswerOfType(this->question.type); + if (!ans_record) + { + OnError(r); + return; + } /* Initiate the connection, now that we have an IP to use. * Passing a hostname directly to BufferedSocket causes it to @@ -51,7 +56,7 @@ void ServernameResolver::OnLookupComplete(const DNS::Query *r) TreeServer* CheckDupe = Utils->FindServer(MyLink->Name.c_str()); if (!CheckDupe) /* Check that nobody tried to connect it successfully while we were resolving */ { - TreeSocket* newsocket = new TreeSocket(MyLink, myautoconnect, ans_record.rdata); + TreeSocket* newsocket = new TreeSocket(MyLink, myautoconnect, ans_record->rdata); if (newsocket->GetFd() > -1) { /* We're all OK */ -- cgit v1.3.1-10-gc9f91