{
bool status;
int i;
+ struct in6_addr rec1_in_addr6;
+ struct in6_addr rec2_in_addr6;
if (rec1->wType != rec2->wType) {
return false;
case DNS_TYPE_A:
return strcmp(rec1->data.ipv4, rec2->data.ipv4) == 0;
case DNS_TYPE_AAAA:
- return strcmp(rec1->data.ipv6, rec2->data.ipv6) == 0;
+ inet_pton(AF_INET6, rec1->data.ipv6, &rec1_in_addr6);
+ inet_pton(AF_INET6, rec2->data.ipv6, &rec2_in_addr6);
+ return memcmp(&rec1_in_addr6, &rec2_in_addr6, sizeof(rec1_in_addr6)) == 0;
case DNS_TYPE_CNAME:
return dns_name_equal(rec1->data.cname, rec2->data.cname);
case DNS_TYPE_TXT: