797{
799 if (error) {
800
801 BOOST_LOG_TRIVIAL(info) << error.message();
802 return;
803 }
805
806 return;
807 }
808
810#if 0
811 std::string str;
812 char const hex_chars[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
813 for (
size_t i = 0; i <
buffer.size(); i++) {
814 const char ch =
buffer[i];
815 str += hex_chars[(ch & 0xF0) >> 4];
816 str += hex_chars[(ch & 0x0F) >> 0];
817 }
819#endif
820
822 if (dns_msg) {
823 asio::ip::address ip;
824 std::string answer_name;
825 if (dns_msg->rr_a) {
826 ip = dns_msg->rr_a->ip;
827 answer_name = dns_msg->rr_a->name;
828 }
829 else if (dns_msg->rr_aaaa) {
830 ip = dns_msg->rr_aaaa->ip;
831 answer_name = dns_msg->rr_aaaa->name;
832 }
833 else
834 return;
835
836 if (!answer_name.empty()) {
837
838 std::string name_tolower = answer_name;
839 std::transform(name_tolower.begin(), name_tolower.end(), name_tolower.begin(),
840 [](unsigned char c) { return std::tolower(c); });
841 std::string hostname_tolower =
socket->get_hostname();
842 std::transform(hostname_tolower.begin(), hostname_tolower.end(), hostname_tolower.begin(),
843 [](unsigned char c) { return std::tolower(c); });
844 if (name_tolower == hostname_tolower) {
847 }
848 }
849 }
850}
std::set< std::string > TxtKeys
Definition Bonjour.hpp:70
boost::asio::ip::udp::endpoint remote_endpoint
Definition Bonjour.hpp:134
std::vector< char > buffer
Definition Bonjour.hpp:133
Bonjour::ReplyFn replyfn
Definition Bonjour.hpp:136
std::unordered_map< std::string, std::string > TxtData
Definition Bonjour.hpp:36
static optional< DnsMessage > decode(const std::vector< char > &buffer, const Bonjour::TxtKeys &txt_keys)
Definition Bonjour.cpp:428