X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Fresolve%2Ftest-dns-domain.c;h=dfe2a44eaeca0a6adfc8a9ed4a63ffa27ffd34c3;hb=d5099efc47d4e6ac60816b5381a5f607ab03f06e;hp=bd53402be89de3757825f449c5ab0b44c0896dfd;hpb=74b2466e14a1961bf3ac0e8a60cfaceec705bd59;p=elogind.git diff --git a/src/resolve/test-dns-domain.c b/src/resolve/test-dns-domain.c index bd53402be..dfe2a44ea 100644 --- a/src/resolve/test-dns-domain.c +++ b/src/resolve/test-dns-domain.c @@ -159,6 +159,24 @@ static void test_dns_name_single_label(void) { assert_se(dns_name_single_label("xx.yy") == false); } +static void test_dns_name_reverse_one(const char *address, const char *name) { + _cleanup_free_ char *p = NULL; + union in_addr_union a, b; + int familya, familyb; + + assert_se(in_addr_from_string_auto(address, &familya, &a) >= 0); + assert_se(dns_name_reverse(familya, &a, &p) >= 0); + assert_se(streq(p, name)); + assert_se(dns_name_address(p, &familyb, &b) > 0); + assert_se(familya == familyb); + assert_se(in_addr_equal(familya, &a, &b)); +} + +static void test_dns_name_reverse(void) { + test_dns_name_reverse_one("47.11.8.15", "15.8.11.47.in-addr.arpa"); + test_dns_name_reverse_one("fe80::47", "7.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa"); +} + int main(int argc, char *argv[]) { test_dns_label_unescape(); @@ -168,6 +186,7 @@ int main(int argc, char *argv[]) { test_dns_name_endswith(); test_dns_name_root(); test_dns_name_single_label(); + test_dns_name_reverse(); return 0; }