diff options
| author | 2016-08-16 12:43:40 -0400 | |
|---|---|---|
| committer | 2016-08-25 17:12:48 +0200 | |
| commit | 14556541bb12fda6e7af8273458f680386e9c438 (patch) | |
| tree | 4b5f1855562785fbfe669794710e6da9a7d2b08f /src/modules/m_spanningtree/resolvers.cpp | |
| parent | core_dns Change type of all log messages to MODNAME (diff) | |
core_dns Make question a member of request, move common FindAnswerOfType to be a member of query
Diffstat (limited to 'src/modules/m_spanningtree/resolvers.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/resolvers.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
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 */ |
