diff --git a/ChangeLog b/ChangeLog
index 31926b10..8e2f2a63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+*
+ * Enable TCP Fast Open when possible. Add OSX support for TFO.
+ * Rename return_call_debugging to return_call_reporting
+
* 2015-11-18: Version 0.5.1
* Bugfix: growing upstreams arrow.
* Bugfix: Segfault on timeout in specific conditions
diff --git a/doc/libgetdns.3.in b/doc/libgetdns.3.in
index 3b3ef575..0c4d2ece 100644
--- a/doc/libgetdns.3.in
+++ b/doc/libgetdns.3.in
@@ -275,10 +275,10 @@ GETDNS_BAD_DNS_CNAME_RETURNED_FOR_OTHER_TYPE: query type for other than CNAME re
Set to the DNS class number (other than Internet (IN) class desired in query.
.HP 3
-"return_call_debugging" (int)
+"return_call_reporting" (int)
Set to GETDNS_EXTENSION_TRUE to add the name
-.I call_debugging
+.I call_reporting
(list) to the top level of the response object that includes a dict for each call made to the API. TBD: more detail
.LP
diff --git a/spec/index.html b/spec/index.html
index 6d22f392..89d1999f 100644
--- a/spec/index.html
+++ b/spec/index.html
@@ -668,7 +668,7 @@ getdns_dict_destroy(extensions);
specify_class
-return_call_debugging
+return_call_reporting
@@ -865,9 +865,9 @@ contains the class number. Few applications will ever use this extension.
3.6 Extensions Relating to the API
An application might want to see debugging information for queries such as the length of time it
-takes for each query to return to the API. Use the return_call_debugging
extension. The
+takes for each query to return to the API. Use the return_call_reporting
extension. The
extension's value (an int) is set to GETDNS_EXTENSION_TRUE
to add the name
-call_debugging
(a list) to the top level of the response object. Each member of the
+call_reporting
(a list) to the top level of the response object. Each member of the
list is a dict that represents one call made for the call to the API. Each member has the following
names:
@@ -875,10 +875,10 @@ names:
query_name
(a bindata) is the name that was sent
query_type
(an int) is the type that was queried for
query_to
(a bindata) is the address to which the query was sent
-start_time
(a bindata) is the time the query started in milliseconds since the epoch,
-represented as a uint64_t
-end_time
(a bindata) is the time the query was received in milliseconds since the epoch,
-represented as a uint64_t
+run_time
(a bindata) is the difference between the time the successful
+query started and ended in milliseconds, represented
+as a uint32_t (this does not include time taken for connection set up
+or transport fallback)
entire_reply
(a bindata) is the entire response received
dnssec_result
(an int) is the DNSSEC status, or GETDNS_DNSSEC_NOT_PERFORMED
if DNSSEC validation was not performed
diff --git a/src/request-internal.c b/src/request-internal.c
index 0e1beff3..8d847ab6 100644
--- a/src/request-internal.c
+++ b/src/request-internal.c
@@ -132,7 +132,7 @@ network_req_init(getdns_network_req *net_req, getdns_dns_req *owner,
net_req->response_len = 0;
net_req->base_query_option_sz = opt_options_size;
- /* Some fields to record info for return_call_debugging */
+ /* Some fields to record info for return_call_reporting */
net_req->debug_start_time = 0;
net_req->debug_end_time = 0;
net_req->debug_tls_auth_status = 0;
@@ -488,8 +488,8 @@ _getdns_dns_req_new(getdns_context *context, getdns_eventloop *loop,
#endif
result->edns_client_subnet_private = context->edns_client_subnet_private;
result->tls_query_padding_blocksize = context->tls_query_padding_blocksize;
- result->return_call_debugging
- = is_extension_set(extensions, "return_call_debugging");
+ result->return_call_reporting
+ = is_extension_set(extensions, "return_call_reporting");
/* will be set by caller */
result->user_pointer = NULL;
diff --git a/src/types-internal.h b/src/types-internal.h
index 42293521..ef5a118e 100644
--- a/src/types-internal.h
+++ b/src/types-internal.h
@@ -226,7 +226,7 @@ typedef struct getdns_network_req
/* Network requests scheduled to write after me */
struct getdns_network_req *write_queue_tail;
- /* Some fields to record info for return_call_debugging */
+ /* Some fields to record info for return_call_reporting */
uint64_t debug_start_time;
uint64_t debug_end_time;
size_t debug_tls_auth_status;
@@ -289,7 +289,7 @@ typedef struct getdns_dns_req {
int edns_cookies;
int edns_client_subnet_private;
uint16_t tls_query_padding_blocksize;
- int return_call_debugging;
+ int return_call_reporting;
/* Internally used by return_validation_chain */
int dnssec_ok_checking_disabled;
diff --git a/src/util-internal.c b/src/util-internal.c
index 07672bd7..4649a79c 100644
--- a/src/util-internal.c
+++ b/src/util-internal.c
@@ -72,7 +72,7 @@ static getdns_extension_format extformats[] = {
#endif
{"return_api_information", t_int},
{"return_both_v4_and_v6", t_int},
- {"return_call_debugging", t_int},
+ {"return_call_reporting", t_int},
{"specify_class", t_int},
};
@@ -676,7 +676,7 @@ success:
}
getdns_dict *
-_getdns_create_call_debugging_dict(
+_getdns_create_call_reporting_dict(
getdns_context *context, getdns_network_req *netreq)
{
getdns_bindata qname;
@@ -751,7 +751,7 @@ _getdns_create_getdns_response(getdns_dns_req *completed_request)
getdns_list *just_addrs = NULL;
getdns_list *replies_full;
getdns_list *replies_tree;
- getdns_list *call_debugging = NULL;
+ getdns_list *call_reporting = NULL;
getdns_network_req *netreq, **netreq_p;
int rrsigs_in_answer = 0;
getdns_dict *reply;
@@ -792,8 +792,8 @@ _getdns_create_getdns_response(getdns_dns_req *completed_request)
if (!(replies_tree = getdns_list_create_with_context(context)))
goto error_free_replies_full;
- if (completed_request->return_call_debugging &&
- !(call_debugging = getdns_list_create_with_context(context)))
+ if (completed_request->return_call_reporting &&
+ !(call_reporting = getdns_list_create_with_context(context)))
goto error_free_replies_full;
for ( netreq_p = completed_request->netreqs
@@ -853,13 +853,13 @@ _getdns_create_getdns_response(getdns_dns_req *completed_request)
goto error;
}
- if (call_debugging) {
+ if (call_reporting) {
if (!(netreq_debug =
- _getdns_create_call_debugging_dict(context,netreq)))
+ _getdns_create_call_reporting_dict(context,netreq)))
goto error;
if (_getdns_list_append_dict(
- call_debugging, netreq_debug)) {
+ call_reporting, netreq_debug)) {
getdns_dict_destroy(netreq_debug);
goto error;
@@ -879,9 +879,9 @@ _getdns_create_getdns_response(getdns_dns_req *completed_request)
goto error;
getdns_list_destroy(replies_tree);
- if (call_debugging &&
- getdns_dict_set_list(result, "call_debugging", call_debugging))
- goto error_free_call_debugging;
+ if (call_reporting &&
+ getdns_dict_set_list(result, "call_reporting", call_reporting))
+ goto error_free_call_reporting;
if (getdns_dict_set_list(result, "replies_full", replies_full))
goto error_free_replies_full;
@@ -906,8 +906,8 @@ _getdns_create_getdns_response(getdns_dns_req *completed_request)
error:
/* cleanup */
getdns_list_destroy(replies_tree);
-error_free_call_debugging:
- getdns_list_destroy(call_debugging);
+error_free_call_reporting:
+ getdns_list_destroy(call_reporting);
error_free_replies_full:
getdns_list_destroy(replies_full);
error_free_result: