<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hi All, </div><div class=""><br class=""></div><div class="">Thanks for all the comments. 2 minor updates on this. </div><div class=""><br class=""></div><div class="">1) I have done a test implementation of the new transport list (see pull request #104 if interested) and since the transport list is much more like the namespace list I propose we use the signature below instead of the one using a getdns_list I originally proposed:</div><div class=""><br class=""></div><div class=""><div class="">getdns_return_t</div><div class="">getdns_context_set_dns_transport_list(</div><div class=""> getdns_context *context,</div><div class=""> size_t transport_count, </div><div class=""> getdns_transport_list_t *transports);</div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">with the text </div><div class="">“The 'transports' array contains an ordered list of transports that will be used for DNS lookups. The values are</div><div class="">GETDNS_TRANSPORT_UDP,</div><div class="">GETDNS_TRANSPORT_TCP,</div><div class="">GETDNS_TRANSPORT_TLS, or</div><div class="">GETDNS_TRANSPORT_STARTTLS”</div><div class=""><br class=""></div><div class="">There was discussion about changing the default to TCP in the call last week…..</div><div class=""><br class=""></div><div class="">2) I have left the existing transport methods untouched and mapped behaviour as closely as possible. If the list can’t be mapped to a getdns_transport_t the getter function returns GETDNS_RETURN_WRONG_TYPE_REQUESTED. </div><div class=""><br class=""></div><div class="">In addition, new context level options proposed for the API are:</div><div class=""><br class=""></div><div class=""><div class="forh" style="box-sizing: border-box; white-space: pre; margin-top: 0px; margin-bottom: 0px; color: rgb(51, 51, 51); line-height: 20px; widows: 1; background-color: rgb(255, 255, 255);">getdns_return_t
getdns_context_set_idle_timeout(
getdns_context *context,
uint64_t timeout
);</div><div style="box-sizing: border-box; margin: 0px; color: rgb(51, 51, 51); line-height: 20px; widows: 1; background-color: rgb(255, 255, 255);" class="">Specifies number of milliseconds the API will leave an idle TCP, TLS or STARTTLS connection open for. The default is <span class="default" style="box-sizing: border-box; font-weight: bold;">0</span>.</div></div><div style="box-sizing: border-box; margin: 0px; color: rgb(51, 51, 51); line-height: 20px; widows: 1; background-color: rgb(255, 255, 255);" class=""><br class=""></div><div style="box-sizing: border-box; margin: 0px; color: rgb(51, 51, 51); line-height: 20px; widows: 1; background-color: rgb(255, 255, 255);" class=""><div class="forh" style="box-sizing: border-box; white-space: pre; margin-top: 0px; margin-bottom: 0px;">getdns_return_t
getdns_context_set_limit_queries_per_connection(
getdns_context *context,
uint16_t limit
);</div><div style="box-sizing: border-box; margin: 0px;" class="">Specifies the limit on the number of DNS queries that will be made on a TCP, TLS or STARTTLS connection. The API will close the existing connection if it is about to exceed this value and open a new connection. A value of <span class="default" style="box-sizing: border-box; font-weight: bold;">0</span> indicates that the number of DNS queries per connection is unlimited.</div><div style="box-sizing: border-box; margin: 0px;" class=""><br class=""></div><div style="box-sizing: border-box; margin: 0px;" class="">Regards</div></div><div class=""><br class=""></div><div class="">Sara. </div><br class=""><div><blockquote type="cite" class=""><div class="">On 12 Jun 2015, at 00:23, Goyal, Neel <<a href="mailto:ngoyal@verisign.com" class="">ngoyal@verisign.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252" class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; font-size: 14px; font-family: Calibri, sans-serif;" class="">
<div class="">What about making it a new method to not break existing APIs / bindings - set_dns_transports (note the plural) or set_dns_transport_order? Internally the old method can just call this w/ a single element list, and the getter can return the head of the
list.</div>
<div class=""><br class="">
</div>
<span id="OLK_SRC_BODY_SECTION" class="">
<div style="font-family: Calibri; font-size: 11pt; text-align: left; border-width: 1pt medium medium; border-style: solid none none; padding: 3pt 0in 0in; border-top-color: rgb(181, 196, 223);" class="">
<span style="font-weight:bold" class="">From: </span>Sara Dickinson <<a href="mailto:sara@sinodun.com" class="">sara@sinodun.com</a>><br class="">
<span style="font-weight:bold" class="">Date: </span>Wednesday, June 10, 2015 at 11:28 AM<br class="">
<span style="font-weight:bold" class="">To: </span>"<a href="mailto:getdns-api@vpnc.org" class="">getdns-api@vpnc.org</a>" <<a href="mailto:getdns-api@vpnc.org" class="">getdns-api@vpnc.org</a>><br class="">
<span style="font-weight:bold" class="">Subject: </span>Re: [getdns-api] Changing the getdns transport options<br class="">
</div>
<div class=""><br class="">
</div>
<div class="">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<div class="">Hi All, </div>
<div class=""><br class="">
</div>
<div class="">Following the earlier discussion of transport options I would like further comments on replacing the relevant part of section 8.3 of the API spec with the following:</div>
<div class=""><span style="text-shadow: rgba(0, 0, 0, 0.333333) 0px 1px 10px;" class=""><br class="">
</span></div>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class="" type="cite">
<div class=""><span style="widows: 1; background-color: rgb(255, 255, 255);" class=""><font color="#333333" class=""><span style="line-height: 20px; white-space: pre;" class="">getdns_return_t</span></font></span></div>
<div class=""><span style="widows: 1; background-color: rgb(255, 255, 255);" class=""><font color="#333333" class=""><span style="line-height: 20px; white-space: pre;" class="">getdns_context_set_dns_transport(</span></font></span></div>
<div class=""><span style="widows: 1; background-color: rgb(255, 255, 255);" class=""><font color="#333333" class=""><span style="line-height: 20px; white-space: pre;" class="">getdns_context *context,</span></font></span></div>
<div class=""><span style="widows: 1; background-color: rgb(255, 255, 255);" class=""><font color="#333333" class=""><span style="line-height: 20px; white-space: pre;" class="">getdns_list *transport_list</span></font></span></div>
<div class=""><span style="widows: 1; background-color: rgb(255, 255, 255);" class=""><font color="#333333" class=""><span style="line-height: 20px; white-space: pre;" class="">);</span></font></span></div>
<div class=""><p style="margin: 10px 0px 0px; padding: 0px; widows: 1; background-color: rgb(255, 255, 255);" class="">
<font color="#333333" class=""><span style="line-height: 18.18181800842285px;" class="">Specifies what transport is used for DNS lookups. </span><span style="line-height: 18.1818180084229px;" class="">The transport_list is an ordered list, values are </span></font><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">GETDNS_TRANSPORT_</span><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">UDP, </span><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">GETDNS_TRANSPORT_</span><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">TCP, </span><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">GETDNS_TRANSPORT_</span><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">STARTTLS
, </span><span style="color: rgb(51, 51, 51); line-height: 18.1818180084229px;" class="">GETDNS_TRANSPORT_</span><font color="#333333" class=""><span style="line-height: 18.1818180084229px;" class="">TLS. </span></font></p>
</div>
</blockquote>
<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class="" type="cite">
<div class=""><br class="">
</div>
</blockquote>
</div></div></span></div></div></blockquote></div><br class=""></body></html>