<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style>
<!--
@font-face
        {font-family:Helvetica}
@font-face
        {font-family:Helvetica}
@font-face
        {font-family:Calibri}
@font-face
        {font-family:Tahoma}
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif"}
span.EmailStyle17
        {font-family:"Calibri","sans-serif";
        color:windowtext}
span.BalloonTextChar
        {font-family:"Tahoma","sans-serif"}
.MsoChpDefault
        {font-family:"Calibri","sans-serif"}
@page WordSection1
        {margin:1.0in 1.0in 1.0in 1.0in}
div.WordSection1
        {}
-->
</style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hello All,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">After the December hackathon, Glen Wiley asked me to review the getdns API, opining that a fresh set of eyes might be useful.  I agreed to take a look, and wrote most of the attached review over my holiday vacation.  Earlier today Neel
 Goyal asked me to share it with the mailing list, so here it is (after a little bit of polishing).</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I approached the review from the perspective of a C++ programmer, thinking about how I might wrap the API in a set of C++ classes.  So naturally, things like const correctness and type safety are important to me.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I’ve gone out on a limb and implemented the changes suggested by my review in the two attached header files. The first header file, getdns_core.h, reflects the recommendations made in Section 2 of my review, while the second header file,
 vdns_core.h, implements the overall refactoring recommended in Section 3 of my review.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">I realize Section 3 proposes some big cosmetic changes, and so I hope it leads to some useful discussions.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Thanks,</p>
<p class="MsoNormal">--Bob</p>
<p class="MsoNormal"><span style="color:#1F497D"> </span></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="371" style="width:278.25pt">
<tbody>
<tr>
<td colspan="2" style="padding:0in 0in 0in 0in">
<p class="MsoNormal"><span style="color:#1F497D"><img width="371" height="2" id="Picture_x0020_1" src="cid:image001.gif@01CF1770.04B7E3D0" alt="Description: Description: Verisign"></span><span style="font-size:12.0pt; color:#1F497D"></span></p>
</td>
</tr>
<tr>
<td style="padding:11.25pt 0in 15.0pt 0in">
<p class="MsoNormal" style="line-height:10.5pt"><b><span style="font-size:9.0pt; font-family:"Helvetica","sans-serif"; color:#006AAA">Bob Steagall</span></b><span style="font-size:8.5pt; font-family:"Helvetica","sans-serif"; color:#6B6D71"><br>
Senior Engineer<br>
<a href="mailto:rsteagall@verisign.com"><span style="color:blue">rsteagall@verisign.com</span></a><br>
<br>
T: 703-948-4476<br>
12061 Bluemont Way</span><span style="font-size:8.5pt; font-family:"Helvetica","sans-serif"; color:#6B6D71"></span></p>
<p class="MsoNormal" style="line-height:10.5pt"><span style="font-size:8.5pt; font-family:"Helvetica","sans-serif"; color:#6B6D71">Reston, VA 20190</span></p>
<p class="MsoNormal" style="line-height:10.5pt"><span style="font-size:8.5pt; font-family:"Helvetica","sans-serif"; color:#6B6D71"> </span></p>
<p class="MsoNormal" style="line-height:10.5pt"><span style="font-size:8.5pt; font-family:"Helvetica","sans-serif"; color:#6B6D71"><a href="http://www.verisigninc.com/"><span style="font-size:9.0pt; color:#006AAA">VerisignInc.com</span></a>
</span><span style="font-size:8.5pt; font-family:"Helvetica","sans-serif"; color:#6B6D71"></span></p>
</td>
<td valign="top" style="padding:11.25pt 0in 0in 0in">
<p class="MsoNormal"><img width="73" height="64" src="cid:image002.gif@01CF1770.04B7E3D0" align="right" alt="Description: Description: Verisign™"><span style="font-size:12.0pt; color:#1F497D"></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
</div>
<h5><font color="gray">“This message (including any attachments) is intended only for the use of the individual or entity to which it is addressed, and may contain information that is non-public, proprietary, privileged, confidential and exempt from disclosure
 under applicable law or may be constituted as attorney work product. If you are not the intended recipient, you are hereby notified that any use, dissemination, distribution, or copying of this communication is strictly prohibited. If you have received this
 message in error, notify sender immediately and delete this message immediately.”
</h5>
</font>
</body>
</html>