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);