<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><div class=""><blockquote type="cite" class=""><div class="">On 1 Nov 2015, at 04:18, John Dickinson <<a href="mailto:jad@sinodun.com" class="">jad@sinodun.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">I have implemented the call_debugging extension. It raised a couple of issues with the API:<br class=""><br class="">1. Added a tls_auth_status field to tell you if the server was authenticated<br class="">2. Added a transport field to tell you what transport was actually used<br class="">3. removed start_time and end_time as these are defined as uint64_t’s but the dict can only handle 32 bit ints.<br class="">4. Added run_time field to contain end_time - start_time as a uint32_t<br class=""></div></blockquote><br class=""></div><div class="">Hi All, <div class=""><br class=""></div><div class="">As a follow up to this I wanted to clarify what changes are being proposed to the official API at this time: </div><div class=""><br class=""></div><div class="">1) Following the implementation in the hackathon there was consensus among the developers that this is very useful general information (not only for debugging purposes) and that a different name e.g. “return_call_reporting” would be more appropriate. </div><div class=""><br class=""></div><div class="">2) The getdns dict cannot represent uint64_t values and therefore the start_time and end_time will be replaced by a single field called ‘run_time’ which will be the 'end_time - start_time as a uint32_t’</div><div class=""><br class=""></div><div class="">Suggested new text including these changes is below. We would like to agree these changes for the next release, so please voice any objections asap. </div><div class=""><br class=""></div><div class="">The ‘transport’ and ’tis_auth_status’ fields mentioned above have been added to the getdns implementation as experimental fields at this point in time, but it would be useful to hear if there is support for adding them to the official API. </div><div class=""><br class=""></div><div class="">Regards</div><div class=""><br class=""></div><div class="">Sara. </div></div><div class=""><h2 class="" style="box-sizing: border-box; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: 500; line-height: 1.1; color: rgb(51, 51, 51); margin-top: 20px; margin-bottom: 10px; font-size: 14pt; widows: 1; background-color: rgb(255, 255, 255);">3.6 Extensions Relating to the API</h2><div class="" style="box-sizing: border-box; margin: 0px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; widows: 1; background-color: rgb(255, 255, 255);">An application might want to see additional information for queries such as the length of time it takes for each query to return to the API. Use the <code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">return_call_reporting</code> extension. The extension's value (an int) is set to<code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">GETDNS_EXTENSION_TRUE</code> to add the name <code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">call_reporting</code> (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:</div><ul class="" style="box-sizing: border-box; margin-top: 0px; margin-bottom: 10px; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 20px; widows: 1; background-color: rgb(255, 255, 255);"><li class="" style="box-sizing: border-box;"><code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">query_name</code> (a bindata) is the name that was sent</li><li class="" style="box-sizing: border-box;"><code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">query_type</code> (an int) is the type that was queried for</li><li class="" style="box-sizing: border-box;"><code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">query_to</code> (a bindata) is the address to which the query was sent</li><li class="" style="box-sizing: border-box;"><code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">run_time</code> (a bindata) is the difference between the time the successful query started and ended in milliseconds since the epoch, represented as a uint32_t (this does not include time taken for connection set up or transport fallback)</li><li class="" style="box-sizing: border-box;"><code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">entire_reply</code> (a bindata) is the entire response received</li><li class="" style="box-sizing: border-box;"><code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">dnssec_result</code> (an int) is the DNSSEC status, or <code class="" style="box-sizing: border-box; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.6px; padding: 2px 4px; color: rgb(199, 37, 78); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(249, 242, 244);">GETDNS_DNSSEC_NOT_PERFORMED</code> if DNSSEC validation was not performed</li></ul></div><div class=""><br class=""></div></div></body></html>