text: // Copyright 2017 The Fuchsia Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  #include "src/connectivity/network/mdns/service/address_responder.h"
  
  #include "src/connectivity/network/mdns/service/mdns_names.h"
  #include "src/lib/syslog/cpp/logger.h"
  
  namespace mdns {
  
  AddressResponder::AddressResponder(MdnsAgent::Host* host) : MdnsAgent(host) {}
  
  AddressResponder::~AddressResponder() {}
  
  void AddressResponder::Start(const std::string& host_full_name, const MdnsAddresses& addresses) {
    FX_DCHECK(!host_full_name.empty());
  
    MdnsAgent::Start(host_full_name, addresses);
    host_full_name_ = host_full_name;
  }
  
  void AddressResponder::ReceiveQuestion(const DnsQuestion& question,
                                         const ReplyAddress& reply_address,
                                         const ReplyAddress& sender_address) {
    if ((question.type_ == DnsType::kA || question.type_ == DnsType::kAaaa ||
         question.type_ == DnsType::kAny) &&
        question.name_.dotted_string_ == host_full_name_) {
      SendAddresses(MdnsResourceSection::kAnswer, reply_address);
    }
  }
  
  }  // namespace mdns
  