diff --git a/ChangeLog b/ChangeLog index a70879dc..985cbff5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,8 @@ * 2015-07-??: Version 0.?.? * Unit test for spurious execute bits. Thanks Paul Wouters. - * Added new transport list options in API. The option is now an ordered list of - GETDNS_TRANSPORT_UDP, GETDNS_TRANSPORT_TCP, GETDNS_TRANSPORT_TLS, - GETDNS_TRANSPORT_STARTTLS. + * Added new transport list options in API. The option is now an ordered + list of GETDNS_TRANSPORT_UDP, GETDNS_TRANSPORT_TCP, + GETDNS_TRANSPORT_TLS, GETDNS_TRANSPORT_STARTTLS. * Added new context setting for idle_timeout * CSYNC RR type diff --git a/spec/getdns-0.601.tgz b/spec/getdns-0.601.tgz deleted file mode 100644 index 9e4a584e..00000000 Binary files a/spec/getdns-0.601.tgz and /dev/null differ diff --git a/spec/getdns-0.602.tgz b/spec/getdns-0.602.tgz new file mode 100644 index 00000000..7958b41e Binary files /dev/null and b/spec/getdns-0.602.tgz differ diff --git a/spec/index.html b/spec/index.html index a98e37c0..dcdb72d3 100644 --- a/spec/index.html +++ b/spec/index.html @@ -94,7 +94,7 @@ tr.code { font-family: monospace }

Originally edited by Paul Hoffman

Currently maintained by the getdns team

-

Document version: "getdns January 2015"

+

Document version: "getdns July 2015"

This document describes a modern asynchronous DNS API. This new API is intended to be useful to application developers and operating system distributors as a way of making @@ -2199,6 +2199,33 @@ The value is GETDNS_TRANSPORT_TCP_ONLY, or GETDNS_TRANSPORT_TCP_ONLY_KEEP_CONNECTIONS_OPEN.

+
+getdns_return_t +getdns_context_set_dns_transport_list( + getdns_context *context, + size_t transport_count, + getdns_transport_list_t *transports +);
+

The transports array contains an ordered list of transports that will be used for DNS lookups. +If only one transport value is specified it will be the only transport used. +Should it not be available basic resolution will fail. +Fallback transport options are specified by including multiple values in the list. +The values are +GETDNS_TRANSPORT_UDP, +GETDNS_TRANSPORT_TCP, +GETDNS_TRANSPORT_TLS, or +GETDNS_TRANSPORT_STARTTLS. +The default is a list containing GETDNS_TRANSPORT_UDP then GETDNS_TRANSPORT_TCP.

+ +
+getdns_return_t +getdns_context_set_idle_timeout( + getdns_context *context, + uint64_t timeout +);
+

Specifies number of milliseconds the API will leave an idle TCP, TLS or STARTTLS connection open for (idle means no outstanding responses and no pending queries). +The default is 0.

+
getdns_return_t getdns_context_set_limit_outstanding_queries( @@ -2431,6 +2458,8 @@ The response dicts inherit the custom memory management functions and the value

Change related to getdns_context_set_memory_functions

GETDNS_CONTEXT_CODE_TIMEOUT

Change related to getdns_context_set_timeout

+

GETDNS_CONTEXT_CODE_IDLE_TIMEOUT

+

Change related to getdns_context_set_idle_timeout

8.11 Getting API information and current Contexts

@@ -2462,7 +2491,7 @@ getdns_pretty_print_dict() for debugging.

9. The Generated Files

-

There is a tarball that includes the .h files, +

There is a tarball that includes the .h files, the examples, and so on. The examples all make, even though there is no API implementation, based on a pseudo-implementation in the tarball; see make-examples-PLATFORM.sh. Note that this currently builds fine on the Macintosh and Ubuntu; help is definitely appreciated on making the build process diff --git a/src/getdns/getdns.h.in b/src/getdns/getdns.h.in index 7f98f7d1..3f24250e 100644 --- a/src/getdns/getdns.h.in +++ b/src/getdns/getdns.h.in @@ -164,9 +164,11 @@ typedef enum getdns_transport_t { GETDNS_TRANSPORT_UDP_ONLY = 541, GETDNS_TRANSPORT_TCP_ONLY = 542, GETDNS_TRANSPORT_TCP_ONLY_KEEP_CONNECTIONS_OPEN = 543, + /* */ GETDNS_TRANSPORT_TLS_ONLY_KEEP_CONNECTIONS_OPEN = 544, GETDNS_TRANSPORT_TLS_FIRST_AND_FALL_BACK_TO_TCP_KEEP_CONNECTIONS_OPEN = 545, GETDNS_TRANSPORT_STARTTLS_FIRST_AND_FALL_BACK_TO_TCP_KEEP_CONNECTIONS_OPEN = 546 + /* */ } getdns_transport_t; /** @@ -177,9 +179,11 @@ typedef enum getdns_transport_t { #define GETDNS_TRANSPORT_UDP_ONLY_TEXT "See getdns_context_set_dns_transport()" #define GETDNS_TRANSPORT_TCP_ONLY_TEXT "See getdns_context_set_dns_transport()" #define GETDNS_TRANSPORT_TCP_ONLY_KEEP_CONNECTIONS_OPEN_TEXT "See getdns_context_set_dns_transport()" +/* */ #define GETDNS_TRANSPORT_TLS_ONLY_KEEP_CONNECTIONS_OPEN_TEXT "See getdns_context_set_dns_transport()" #define GETDNS_TRANSPORT_TLS_FIRST_AND_FALL_BACK_TO_TCP_KEEP_CONNECTIONS_OPEN_TEXT "See getdns_context_set_dns_transport()" #define GETDNS_TRANSPORT_STARTTLS_FIRST_AND_FALL_BACK_TO_TCP_KEEP_CONNECTIONS_OPEN_TEXT "See getdns_context_set_dns_transport()" +/* */ /** @} */ @@ -196,10 +200,10 @@ typedef enum getdns_transport_list_t { * \defgroup Base transport texts * @{ */ -#define GETDNS_TRANSPORT_UDP_TEXT "See getdns_context_set_dns_transport()" -#define GETDNS_TRANSPORT_TCP_TEXT "See getdns_context_set_dns_transport()" -#define GETDNS_TRANSPORT_TLS_TEXT "See getdns_context_set_dns_transport()" -#define GETDNS_TRANSPORT_STARTTLS_TEXT "See getdns_context_set_dns_transport()" +#define GETDNS_TRANSPORT_UDP_TEXT "See getdns_context_set_dns_transport_list()" +#define GETDNS_TRANSPORT_TCP_TEXT "See getdns_context_set_dns_transport_list()" +#define GETDNS_TRANSPORT_TLS_TEXT "See getdns_context_set_dns_transport_list()" +#define GETDNS_TRANSPORT_STARTTLS_TEXT "See getdns_context_set_dns_transport_list()" /** @} */ @@ -267,7 +271,7 @@ typedef enum getdns_context_code_t { #define GETDNS_CONTEXT_CODE_DNSSEC_ALLOWED_SKEW_TEXT "Change related to getdns_context_set_dnssec_allowed_skew" #define GETDNS_CONTEXT_CODE_MEMORY_FUNCTIONS_TEXT "Change related to getdns_context_set_memory_functions" #define GETDNS_CONTEXT_CODE_TIMEOUT_TEXT "Change related to getdns_context_set_timeout" -#define GETDNS_CONTEXT_CODE_TIMEOUT_IDLE_TEXT "Change related to getdns_context_set_idle_timeout" +#define GETDNS_CONTEXT_CODE_IDLE_TIMEOUT_TEXT "Change related to getdns_context_set_idle_timeout" /** @} */ @@ -971,6 +975,9 @@ getdns_return_t getdns_context_set_dns_transport_list(getdns_context *context, size_t transport_count, getdns_transport_list_t *transports); +getdns_return_t +getdns_context_set_idle_timeout(getdns_context *context, uint64_t timeout); + getdns_return_t getdns_context_set_limit_outstanding_queries(getdns_context *context, uint16_t limit); @@ -978,9 +985,6 @@ getdns_context_set_limit_outstanding_queries(getdns_context *context, getdns_return_t getdns_context_set_timeout(getdns_context *context, uint64_t timeout); -getdns_return_t -getdns_context_set_idle_timeout(getdns_context *context, uint64_t timeout); - getdns_return_t getdns_context_set_follow_redirects(getdns_context *context, getdns_redirects_t value);