mirror of https://github.com/getdnsapi/getdns.git
Merge pull request #1 from wtoorop/bugfix/transport_test
Own root server with TCP only full recursion test
This commit is contained in:
commit
3f29bfa212
|
@ -244,12 +244,25 @@
|
||||||
START_TEST (getdns_context_set_dns_transport_recursing_7)
|
START_TEST (getdns_context_set_dns_transport_recursing_7)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_TCP_ONLY
|
* Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_TCP_ONLY
|
||||||
* expect: Response returned
|
* expect: Response returned
|
||||||
*/
|
*/
|
||||||
struct getdns_context *context = NULL;
|
struct getdns_context *context = NULL;
|
||||||
struct getdns_dict *response = NULL;
|
struct getdns_dict *response = NULL;
|
||||||
struct getdns_dict *extensions = getdns_dict_create();
|
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.
|
||||||
|
*/
|
||||||
|
struct getdns_list *root_servers = getdns_list_create();
|
||||||
|
struct getdns_bindata nlnetlabs_root = { 4, (void *)"\xB9\x31\x8D\x25" };
|
||||||
|
|
||||||
uint32_t status;
|
uint32_t status;
|
||||||
uint32_t type;
|
uint32_t type;
|
||||||
uint32_t tc;
|
uint32_t tc;
|
||||||
|
@ -264,11 +277,15 @@
|
||||||
/* Re-do over TCP */
|
/* Re-do over TCP */
|
||||||
ASSERT_RC(getdns_dict_set_int(extensions,"return_call_reporting", GETDNS_EXTENSION_TRUE),
|
ASSERT_RC(getdns_dict_set_int(extensions,"return_call_reporting", GETDNS_EXTENSION_TRUE),
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_dict_set_int()");
|
||||||
|
ASSERT_RC(getdns_list_set_bindata(root_servers,0,&nlnetlabs_root),
|
||||||
|
GETDNS_RETURN_GOOD, "Return code from getdns_list_set_bindata()");
|
||||||
|
ASSERT_RC(getdns_context_set_dns_root_servers(context, root_servers),
|
||||||
|
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_root_servers()");
|
||||||
ASSERT_RC(getdns_context_set_dns_transport(context, GETDNS_TRANSPORT_TCP_ONLY),
|
ASSERT_RC(getdns_context_set_dns_transport(context, GETDNS_TRANSPORT_TCP_ONLY),
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_transport()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_transport()");
|
||||||
ASSERT_RC(getdns_context_set_edns_maximum_udp_payload_size(context, 512),
|
ASSERT_RC(getdns_context_set_edns_maximum_udp_payload_size(context, 512),
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()");
|
||||||
ASSERT_RC(getdns_general_sync(context, "getdnsapi.net", 48, extensions, &response),
|
ASSERT_RC(getdns_general_sync(context, "large.getdnsapi.net", GETDNS_RRTYPE_TXT, extensions, &response),
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()");
|
||||||
|
|
||||||
ASSERT_RC(getdns_dict_get_int(response, "status", &status),
|
ASSERT_RC(getdns_dict_get_int(response, "status", &status),
|
||||||
|
@ -283,6 +300,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
CONTEXT_DESTROY;
|
CONTEXT_DESTROY;
|
||||||
|
getdns_dict_destroy(extensions);
|
||||||
|
getdns_list_destroy(root_servers);
|
||||||
|
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
@ -311,7 +330,7 @@
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_transport()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_transport()");
|
||||||
ASSERT_RC(getdns_context_set_edns_maximum_udp_payload_size(context, 512),
|
ASSERT_RC(getdns_context_set_edns_maximum_udp_payload_size(context, 512),
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()");
|
||||||
ASSERT_RC(getdns_general_sync(context, "getdnsapi.net", 48, extensions, &response),
|
ASSERT_RC(getdns_general_sync(context, "large.getdnsapi.net", GETDNS_RRTYPE_TXT, extensions, &response),
|
||||||
GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()");
|
GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()");
|
||||||
|
|
||||||
ASSERT_RC(getdns_dict_get_int(response, "status", &status),
|
ASSERT_RC(getdns_dict_get_int(response, "status", &status),
|
||||||
|
|
Loading…
Reference in New Issue