+ return a->loc.size == b->loc.size &&
+ a->loc.horiz_pre == b->loc.horiz_pre &&
+ a->loc.vert_pre == b->loc.vert_pre &&
+ a->loc.latitude == b->loc.latitude &&
+ a->loc.longitude == b->loc.longitude &&
+ a->loc.altitude == b->loc.altitude;
+
+ case DNS_TYPE_SSHFP:
+ return a->sshfp.algorithm == b->sshfp.algorithm &&
+ a->sshfp.fptype == b->sshfp.fptype &&
+ a->sshfp.key_size == b->sshfp.key_size &&
+ memcmp(a->sshfp.key, b->sshfp.key, a->sshfp.key_size) == 0;
+
+ case DNS_TYPE_DNSKEY:
+ return a->dnskey.zone_key_flag == b->dnskey.zone_key_flag &&
+ a->dnskey.sep_flag == b->dnskey.sep_flag &&
+ a->dnskey.algorithm == b->dnskey.algorithm &&
+ a->dnskey.key_size == b->dnskey.key_size &&
+ memcmp(a->dnskey.key, b->dnskey.key, a->dnskey.key_size) == 0;
+
+ default:
+ return a->generic.size == b->generic.size &&
+ memcmp(a->generic.data, b->generic.data, a->generic.size) == 0;
+ }