]> granicus.if.org Git - libevent/commitdiff
test/dns: fix initialize_nameservers when there is ipv6 in /etc/resolv.conf
authorAzat Khuzhin <azat@libevent.org>
Mon, 27 Jul 2020 22:19:28 +0000 (01:19 +0300)
committerAzat Khuzhin <azat@libevent.org>
Mon, 27 Jul 2020 22:19:55 +0000 (01:19 +0300)
Fixes: #1060
test/regress_dns.c

index abad1b474b51c4834f1b51e4015e034f4ed1d4c9..f97e755dbbad32101aa91040904f4343bf7059f8 100644 (file)
@@ -1051,6 +1051,8 @@ dns_initialize_nameservers_test(void *arg)
        struct basic_test_data *data = arg;
        struct event_base *base = data->base;
        struct evdns_base *dns = NULL;
+       struct sockaddr_storage ss;
+       int size;
 
        dns = evdns_base_new(base, 0);
        tt_assert(dns);
@@ -1059,7 +1061,14 @@ dns_initialize_nameservers_test(void *arg)
 
        dns = evdns_base_new(base, EVDNS_BASE_INITIALIZE_NAMESERVERS);
        tt_assert(dns);
-       tt_int_op(evdns_base_get_nameserver_addr(dns, 0, NULL, 0), ==, sizeof(struct sockaddr));
+
+       size = evdns_base_get_nameserver_addr(dns, 0, (struct sockaddr *)&ss, sizeof(ss));
+       tt_int_op(size, >, 0);
+       if (ss.ss_family == AF_INET)
+               tt_int_op(size, ==, sizeof(struct sockaddr_in));
+       else
+               tt_int_op(size, ==, sizeof(struct sockaddr_in6));
+
 
 end:
        if (dns)