X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Fresolved-dns-domain.c;h=e1eb3ddfe5a6a7478246f453694bd9f5d663a232;hb=59aa582137cab11ff6aeb9adc56b9e70c4d320ae;hp=80a2b3cd323668439eaf3b45e81ed1b8d31959b3;hpb=bdf10b5b4d9e7abdc08bdca4b073d021b0043d1f;p=elogind.git diff --git a/src/resolve/resolved-dns-domain.c b/src/resolve/resolved-dns-domain.c index 80a2b3cd3..e1eb3ddfe 100644 --- a/src/resolve/resolved-dns-domain.c +++ b/src/resolve/resolved-dns-domain.c @@ -324,7 +324,7 @@ unsigned long dns_name_hash_func(const void *s, const uint8_t hash_key[HASH_KEY_ k = dns_label_undo_idna(label, r, label, sizeof(label)); if (k < 0) - return k; + break; if (k > 0) r = k; @@ -371,6 +371,11 @@ int dns_name_compare_func(const void *a, const void *b) { } } +const struct hash_ops dns_name_hash_ops = { + .hash = dns_name_hash_func, + .compare = dns_name_compare_func +}; + int dns_name_equal(const char *x, const char *y) { int r, q, k, w; @@ -434,9 +439,9 @@ int dns_name_endswith(const char *name, const char *suffix) { saved_n = n; q = dns_label_unescape(&s, ls, sizeof(ls)); - if (r < 0) - return r; - w = dns_label_undo_idna(ls, r, ls, sizeof(ls)); + if (q < 0) + return q; + w = dns_label_undo_idna(ls, q, ls, sizeof(ls)); if (w < 0) return w; if (w > 0)