From 0c747545667ecc17ea269932f2a5aa1b4b847798 Mon Sep 17 00:00:00 2001 From: Xie Han <63350856@qq.com> Date: Sat, 8 Feb 2025 19:36:02 +0800 Subject: [PATCH] Simplify DNS server implementation. --- src/factory/DnsTaskImpl.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/factory/DnsTaskImpl.cc b/src/factory/DnsTaskImpl.cc index 18b70494f20..54c89e3bc3f 100644 --- a/src/factory/DnsTaskImpl.cc +++ b/src/factory/DnsTaskImpl.cc @@ -217,10 +217,31 @@ class WFDnsServerTask : public WFServerTask return this->WFServerTask::message_out(); } + virtual void handle(int state, int error); + protected: enum TransportType type; }; +void WFDnsServerTask::handle(int state, int error) +{ + if (state == WFT_STATE_TOREPLY) + { + DnsRequest *req = this->get_req(); + DnsResponse *resp = this->get_resp(); + + resp->set_question_name(req->get_question_name()); + resp->set_question_type(req->get_question_type()); + resp->set_question_class(req->get_question_class()); + resp->set_opcode(req->get_opcode()); + resp->set_id(req->get_id()); + resp->set_rd(req->get_rd()); + resp->set_qr(1); + } + + return WFServerTask::handle(state, error); +} + /**********Server Factory**********/ WFDnsTask *WFServerTaskFactory::create_dns_task(CommService *service,