775{
778
779 BOOST_LOG_TRIVIAL(info) <<
error.message();
780 return;
781 }
783
784 return;
785 }
786
788#if 0
789 std::string str;
790 char const hex_chars[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
791 for (
size_t i = 0; i <
buffer.size(); i++) {
792 const char ch =
buffer[i];
793 str += hex_chars[(ch & 0xF0) >> 4];
794 str += hex_chars[(ch & 0x0F) >> 0];
795 }
797#endif
798
800 if (dns_msg) {
801 asio::ip::address ip;
802 std::string answer_name;
803 if (dns_msg->rr_a) {
804 ip = dns_msg->rr_a->ip;
805 answer_name = dns_msg->rr_a->name;
806 }
807 else if (dns_msg->rr_aaaa) {
808 ip = dns_msg->rr_aaaa->ip;
809 answer_name = dns_msg->rr_aaaa->name;
810 }
811 else
812 return;
813
814 if (!answer_name.empty()) {
815
816 std::string name_tolower = answer_name;
817 std::transform(name_tolower.begin(), name_tolower.end(), name_tolower.begin(),
818 [](unsigned char c) { return std::tolower(c); });
820 std::transform(hostname_tolower.begin(), hostname_tolower.end(), hostname_tolower.begin(),
821 [](unsigned char c) { return std::tolower(c); });
822 if (name_tolower == hostname_tolower) {
825 }
826 }
827 }
828}
std::set< std::string > TxtKeys
Definition Bonjour.hpp:57
std::string get_hostname() const
Definition Bonjour.hpp:261
boost::asio::ip::udp::endpoint remote_endpoint
Definition Bonjour.hpp:120
std::vector< char > buffer
Definition Bonjour.hpp:119
Bonjour::ReplyFn replyfn
Definition Bonjour.hpp:122
std::unordered_map< std::string, std::string > TxtData
Definition Bonjour.hpp:23
static optional< DnsMessage > decode(const std::vector< char > &buffer, const Bonjour::TxtKeys &txt_keys)
Definition Bonjour.cpp:406
static char error[256]
Definition tga.cpp:50