diff --git a/src/test/check_getdns_context_set_dns_transport.h b/src/test/check_getdns_context_set_dns_transport.h index ef847636..83b18d6e 100644 --- a/src/test/check_getdns_context_set_dns_transport.h +++ b/src/test/check_getdns_context_set_dns_transport.h @@ -292,17 +292,14 @@ struct getdns_dict *extensions = getdns_dict_create(); /* - * Not all servers in the path to large.getdnsapi.net seem to support - * TCP consistently. Many (root) servers are anycasted which decreases - * reliability of TCP availability (as we've seen in practice). - * To mitigate we provide our own root server for which we are sure that - * it supports TCP. The .net authoritative server are still out of our - * control tough. But because they are managed by a single party I - * suspect them to be a bit more reliable. + * Not all root servers seem to support TCP reliably. To mitigate, + * we put our faith in k.root-servers.net. */ struct getdns_list *root_servers = getdns_list_create(); struct getdns_list *root_servers2 = getdns_list_create(); - struct getdns_bindata nlnetlabs_root = { 4, (void *)"\xB9\x31\x8D\x25" }; + struct getdns_bindata k4_root = { 4, (void *)"\xC1\x00\x0E\x81" }; + struct getdns_bindata k6_root = { 16, (void *) + "\x20\x01\x07\xFD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01" }; struct getdns_bindata *answer = NULL; uint32_t status; @@ -319,7 +316,9 @@ /* Re-do over TCP */ ASSERT_RC(getdns_dict_set_int(extensions,"return_call_reporting", GETDNS_EXTENSION_TRUE), GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()"); - ASSERT_RC(getdns_list_set_bindata(root_servers, 0, &nlnetlabs_root), + ASSERT_RC(getdns_list_set_bindata(root_servers, 0, &k6_root), + GETDNS_RETURN_GOOD, "Return code from getdns_list_set_bindata()"); + ASSERT_RC(getdns_list_set_bindata(root_servers, 1, &k4_root), GETDNS_RETURN_GOOD, "Return code from getdns_list_set_bindata()"); ASSERT_RC(getdns_context_set_dns_root_servers(context, root_servers), @@ -328,8 +327,13 @@ GETDNS_RETURN_GOOD, "Return code from getdns_context_get_dns_root_servers()"); ASSERT_RC(getdns_list_get_bindata(root_servers2, 0, &answer), GETDNS_RETURN_GOOD, "Return code from getdns_list_get_bindata()"); - ck_assert_msg(strncmp((char *)answer->data, (char *)nlnetlabs_root.data, 4) == 0, - "Expected answer data to be 185.49.141.37"); + ck_assert_msg(strncmp((char *)answer->data, (char *)k6_root.data, 16) == 0, + "Expected answer data to be 2001:7fd::1"); + ASSERT_RC(getdns_list_get_bindata(root_servers2, 1, &answer), + GETDNS_RETURN_GOOD, "Return code from getdns_list_get_bindata()"); + ck_assert_msg(strncmp((char *)answer->data, (char *)k4_root.data, 4) == 0, + "Expected answer data to be 193.0.14.129"); + ASSERT_RC(getdns_context_set_dns_transport(context, GETDNS_TRANSPORT_TCP_ONLY), GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_transport()"); ASSERT_RC(getdns_context_set_edns_maximum_udp_payload_size(context, 512),