From bbe9f9f05f1a4f9961e95ef81a10effb8ce19ebe Mon Sep 17 00:00:00 2001 From: WolverinDEV Date: Sat, 23 Nov 2019 22:27:02 +0100 Subject: [PATCH] Fixed error that DNS server only return NXDOMAIN --- server/src/handler.cpp | 2 +- util/include/teadns/builder.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/handler.cpp b/server/src/handler.cpp index d65225b..5729f8c 100644 --- a/server/src/handler.cpp +++ b/server/src/handler.cpp @@ -58,7 +58,7 @@ void WebDNSHandler::handle_message(const std::shared_ptr& bind } } - if(parser.answers().empty()) + if(response.answer_count() == 0) response.header().set_response_code(rcode::NXDOMAIN); else response.header().set_response_code(rcode::NOERROR); diff --git a/util/include/teadns/builder.h b/util/include/teadns/builder.h index c41152b..0ec8e14 100644 --- a/util/include/teadns/builder.h +++ b/util/include/teadns/builder.h @@ -207,6 +207,9 @@ namespace ts::dns { return this->_answers[index]; } + inline size_t answer_count() const { return this->_answers.size(); } + inline size_t query_count() const { return this->_queries.size(); } + size_t build(char* /* buffer */, size_t /* max length */, std::string& /* error */); private: builder::DNSHeader _header{};