auto rdata = ns_rr_rdata(rr);
uint16_t priority = ns_get16(rdata); rdata += NS_INT16SZ;
- rdata += NS_INT16SZ; // weight
+ uint16_t weight = ns_get16(rdata); rdata += NS_INT16SZ;
uint16_t port = ns_get16(rdata); rdata += NS_INT16SZ;
memset(full_target, 0, sizeof(full_target));
ns_name_uncompress(ns_msg_base(handle), ns_msg_end(handle),
return -EINVAL;
}
target = target.substr(0, end);
- (*srv_hosts)[target] = {priority, addr};
+ (*srv_hosts)[target] = {priority, weight, addr};
}
}
return 0;
os << it->second.addr;
ASSERT_EQ(os.str(), "v2:192.168.1.11:6789/0");
os.str("");
+ ASSERT_EQ(it->second.priority, 10);
+ ASSERT_EQ(it->second.weight, 40);
it = records.find("mon.b");
ASSERT_NE(it, records.end());
os << it->second.addr;
ASSERT_EQ(os.str(), "v2:192.168.1.12:6789/0");
os.str("");
+ ASSERT_EQ(it->second.priority, 10);
+ ASSERT_EQ(it->second.weight, 35);
it = records.find("mon.c");
ASSERT_NE(it, records.end());
os << it->second.addr;
ASSERT_EQ(os.str(), "v2:192.168.1.13:6789/0");
+ ASSERT_EQ(it->second.priority, 10);
+ ASSERT_EQ(it->second.weight, 25);
}
TEST_F(DNSResolverTest, resolve_srv_hosts_full_domain) {