return 0;
}
-DnsTxtItem *dns_txt_item_free_all(DnsTxtItem *i) {
- DnsTxtItem *n;
-
- if (!i)
- return NULL;
-
- n = i->items_next;
+DnsTxtItem *dns_txt_item_free_all(DnsTxtItem *first) {
+ LIST_FOREACH(items, i, first)
+ free(i);
- free(i);
- return dns_txt_item_free_all(n);
+ return NULL;
}
bool dns_txt_item_equal(DnsTxtItem *a, DnsTxtItem *b) {
+ DnsTxtItem *bb = b;
if (a == b)
return true;
- if (!a != !b)
- return false;
-
- if (!a)
- return true;
+ LIST_FOREACH(items, aa, a) {
+ if (!bb)
+ return false;
- if (a->length != b->length)
- return false;
+ if (memcmp_nn(aa->data, aa->length, bb->data, bb->length) != 0)
+ return false;
- if (memcmp(a->data, b->data, a->length) != 0)
- return false;
+ bb = bb->items_next;
+ }
- return dns_txt_item_equal(a->items_next, b->items_next);
+ return !bb;
}
DnsTxtItem *dns_txt_item_copy(DnsTxtItem *first) {