<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; font-size: 14px; font-family: Calibri, sans-serif;">
<div style="color: rgb(0, 0, 0);"><br>
</div>
<div style="color: rgb(0, 0, 0);"><br>
</div>
<span id="OLK_SRC_BODY_SECTION" style="color: rgb(0, 0, 0);">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Sara Dickinson <<a href="mailto:sara@sinodun.com">sara@sinodun.com</a>><br>
<span style="font-weight:bold">Date: </span>Wednesday, June 17, 2015 at 12:54 PM<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:getdns-api@vpnc.org">getdns-api@vpnc.org</a>" <<a href="mailto:getdns-api@vpnc.org">getdns-api@vpnc.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [getdns-api] Changing the getdns transport options<br>
</div>
<div><br>
</div>
<div>
<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="">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>
</div>
</span>
<div style="color: rgb(0, 0, 0);"><br>
</div>
<div><font color="#ff0000">If only one of these is in the list, it will be used strictly.  </font></div>
<span id="OLK_SRC_BODY_SECTION" style="color: rgb(0, 0, 0);">
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
<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="">
<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="">
</div>
</div>
</span>
</body>
</html>