5 #ifndef vnsw_agent_dns_handler_hpp
6 #define vnsw_agent_dns_handler_hpp
9 #include "vnc_cfg_types.h"
13 #define DEFAULT_DNS_TTL 120
23 typedef boost::function<void(
const boost::system::error_code&,
47 boost::asio::io_context &
io);
52 boost_udp::resolver::iterator it,
53 DnsItems::iterator item);
88 std::string *domain_name)
const;
89 void GetBaseName(
const std::string &name, std::string *base)
const;
108 boost::asio::ip::udp::endpoint
ep_;
std::list< DnsItem > DnsItems
void DefaultDnsSendResponse()
void DelUpdate(InterTaskMsg *msg)
autogen::IpamType ipam_type_
autogen::VirtualDnsType vdns_type_
void GetDomainName(const VmInterface *vm_itf, std::string *domain_name) const
void GetBaseName(const std::string &name, std::string *base) const
void UpdateGWAddress(DnsItem &item)
std::vector< DnsResolverInfo * > def_dns_resolvers_
static const uint32_t max_items_per_xmpp_msg
bool HandleVirtualDnsRequest(const VmInterface *vmitf)
bool ResolveLinkLocalRequest(DnsItems::iterator &item, DnsItems *linklocal_items) const
bool HandleDefaultDnsResponse()
void UpdateOffsets(DnsItem &item, bool name_update_required)
bool GetDomainNameFromDhcp(std::vector< autogen::DhcpOptionType > &options, std::string *domain_name) const
bool HandleUpdateResponse()
void SendXmppUpdate(AgentDnsXmppChannel *channel, DnsUpdateData *xmpp_data)
bool SendDnsQuery(DnsResolverInfo *resolver, uint16_t xid)
uint16_t query_name_update_len_
bool DefaultMethodInUse()
DnsItems linklocal_items_
DnsHandler(Agent *agent, boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)
void Update(InterTaskMsg *msg)
bool SendToDefaultServer()
bool TimerExpiry(uint16_t xid)
void DefaultDnsResolveHandler(const boost::system::error_code &error, boost_udp::resolver::iterator it, DnsItems::iterator item)
DnsNameEncoder name_encoder_
std::string DnsItemsToString(DnsItems &items) const
bool NeedRetryForNextServer(uint16_t code)
void Resolve(dns_flags flags, const DnsItems &ques, DnsItems &ans, DnsItems &auth, DnsItems &add)
DISALLOW_COPY_AND_ASSIGN(DnsHandler)
std::vector< DnsResolverInfo * > dns_resolvers_
bool HandleBindResponse()
boost::function< void(const boost::system::error_code &, boost_udp::resolver::iterator)> ResolveHandler
void HandleInvalidBindResponse(DnsHandler *handler, dns_flags flags, const DnsItems &ques, DnsItems &ans, DnsItems &auth, DnsItems &add, uint16_t xid)
std::vector< boost_udp::resolver * > ResolvList
bool HandleDefaultDnsRequest(const VmInterface *vmitf)
void BuildDefaultDnsResolvers()
bool ResolveAllLinkLocalRequests()
boost::asio::ip::udp boost_udp
boost::asio::ip::udp::endpoint ep_
bool operator<(const QueryKey &rhs) const
QueryKey(const Interface *i, uint16_t x)