Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > e3a718fcad37ff363f65d6a6e994e272 > files > 197

ldns-devel-1.6.12-1.fc15.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type"
content="text/html;charset=iso-8859-1">
<title>ldns documentation</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div class="logo">
<img src="LogoInGradientBar2-y100.png"/>
</div>
<!-- Generated by Doxygen 1.7.4 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="dirs.html"><span>Directories</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="dir_7a7a565456b510ac01baf8655647d8a2.html">ldns</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">net.h File Reference</div>  </div>
</div>
<div class="contents">

<p>Contains functions to send and receive packets over a network.  
<a href="#details">More...</a></p>

<p><a href="net_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="define-members"></a>
Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a22e08a915ebd4b0e6ce971cb67367c28">LDNS_DEFAULT_TIMEOUT_SEC</a>&#160;&#160;&#160;5</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a988fa4d3029ca208472bc789000709fd">LDNS_DEFAULT_TIMEOUT_USEC</a>&#160;&#160;&#160;0</td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#ae4a781d456d0971265b773f18f4c6ecc">ldns_udp_send</a> (uint8_t **result, <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout, size_t *answersize)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a buffer to an ip using udp and return the respons as a ldns_pkt.  <a href="#ae4a781d456d0971265b773f18f4c6ecc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a84751182c6fa8f75ff79da83c18c0954">ldns_udp_bgsend</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Send an udp query and don't wait for an answer but return the socket.  <a href="#a84751182c6fa8f75ff79da83c18c0954"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a8c4de333a55065818703c26c4464ba70">ldns_tcp_bgsend</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Send an tcp query and don't wait for an answer but return the socket.  <a href="#a8c4de333a55065818703c26c4464ba70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a8eef624207f9e36c10f0805b46b80e62">ldns_tcp_send</a> (uint8_t **result, <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout, size_t *answersize)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a buffer to an ip using tcp and return the respons as a ldns_pkt.  <a href="#a8eef624207f9e36c10f0805b46b80e62"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#ae8d445949587087d2c91748f5e39c8c1">ldns_send</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> **pkt, <a class="el" href="structldns__struct__resolver.html">ldns_resolver</a> *r, const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *query_pkt)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends ptk to the nameserver at the resolver object.  <a href="#ae8d445949587087d2c91748f5e39c8c1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a1c79e22528bdea08ec1e16ddb7bca1ec">ldns_send_buffer</a> (<a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> **pkt, <a class="el" href="structldns__struct__resolver.html">ldns_resolver</a> *r, <a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qb, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *tsig_mac)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends and ldns_buffer (presumably containing a packet to the nameserver at the resolver object.  <a href="#a1c79e22528bdea08ec1e16ddb7bca1ec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a734323eed74db2d1db4404a061686a6b">ldns_tcp_connect</a> (const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a tcp socket to the specified address.  <a href="#a734323eed74db2d1db4404a061686a6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a62a3f9693524a2a7ec571fcda5121629">ldns_udp_connect</a> (const struct sockaddr_storage *to, struct timeval timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a udp socket to the specified address.  <a href="#a62a3f9693524a2a7ec571fcda5121629"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a690205442102fe4b606b5679241fce04">ldns_tcp_send_query</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qbin, int sockfd, const struct sockaddr_storage *to, socklen_t tolen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">send a query via tcp to a server.  <a href="#a690205442102fe4b606b5679241fce04"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#af4cb429eb90f49cab4cb8e61081682c6">ldns_udp_send_query</a> (<a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *qbin, int sockfd, const struct sockaddr_storage *to, socklen_t tolen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">send a query via udp to a server.  <a href="#af4cb429eb90f49cab4cb8e61081682c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a0ec64fcdbe349ca15283fee443d06737">ldns_tcp_read_wire_timeout</a> (int sockfd, size_t *size, struct timeval timeout)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gives back a raw packet from the wire and reads the header data from the given socket.  <a href="#a0ec64fcdbe349ca15283fee443d06737"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a3f7bd944f2cb1ea28bd8dd056c16e07d">ldns_tcp_read_wire</a> (int sockfd, size_t *size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This routine may block.  <a href="#a3f7bd944f2cb1ea28bd8dd056c16e07d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#aafca8bce8ea9febd9797c8dbb3931fbb">ldns_udp_read_wire</a> (int sockfd, size_t *size, struct sockaddr_storage *fr, socklen_t *frlen)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Gives back a raw packet from the wire and reads the header data from the given socket.  <a href="#aafca8bce8ea9febd9797c8dbb3931fbb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct sockaddr_storage *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a897b9376491b14bb57cdda6e6511464f">ldns_rdf2native_sockaddr_storage</a> (const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *rd, uint16_t port, size_t *size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns the native sockaddr representation from the rdf.  <a href="#a897b9376491b14bb57cdda6e6511464f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a88f2c363ffaec397410555b4f2fb9668">ldns_sockaddr_storage2rdf</a> (struct sockaddr_storage *sock, uint16_t *port)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">returns an rdf with the sockaddr info.  <a href="#a88f2c363ffaec397410555b4f2fb9668"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="net_8h.html#a31ceb08c8123dbac5c02cab63502ceb4">ldns_axfr_start</a> (<a class="el" href="structldns__struct__resolver.html">ldns_resolver</a> *resolver, <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *domain, <a class="el" href="rr_8h.html#aa11e99c7e7c630e03373f2a2cafc4ee9">ldns_rr_class</a> c)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the resolver for an axfr query The query is sent and the answers can be read with ldns_axfr_next.  <a href="#a31ceb08c8123dbac5c02cab63502ceb4"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Contains functions to send and receive packets over a network. </p>

<p>Definition in file <a class="el" href="net_8h_source.html">net.h</a>.</p>
</div><hr/><h2>Define Documentation</h2>
<a class="anchor" id="a22e08a915ebd4b0e6ce971cb67367c28"></a><!-- doxytag: member="net.h::LDNS_DEFAULT_TIMEOUT_SEC" ref="a22e08a915ebd4b0e6ce971cb67367c28" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DEFAULT_TIMEOUT_SEC&#160;&#160;&#160;5</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="net_8h_source.html#l00023">23</a> of file <a class="el" href="net_8h_source.html">net.h</a>.</p>

</div>
</div>
<a class="anchor" id="a988fa4d3029ca208472bc789000709fd"></a><!-- doxytag: member="net.h::LDNS_DEFAULT_TIMEOUT_USEC" ref="a988fa4d3029ca208472bc789000709fd" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define LDNS_DEFAULT_TIMEOUT_USEC&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="net_8h_source.html#l00024">24</a> of file <a class="el" href="net_8h_source.html">net.h</a>.</p>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ae4a781d456d0971265b773f18f4c6ecc"></a><!-- doxytag: member="net.h::ldns_udp_send" ref="ae4a781d456d0971265b773f18f4c6ecc" args="(uint8_t **result, ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout, size_t *answersize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_udp_send </td>
          <td>(</td>
          <td class="paramtype">uint8_t **&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qbin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>answersize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a buffer to an ip using udp and return the respons as a ldns_pkt. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the ldns_buffer to be send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>the ip addr to send to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>length of the ip addr </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>the timeout value for the network </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">answersize</td><td>size of the packet </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>packet with the answer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00291">291</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="error_8h_source.html#l00046">LDNS_STATUS_NETWORK_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="error_8h_source.html#l00096">LDNS_STATUS_SOCKET_ERROR</a>, <a class="el" href="net_8c_source.html#l00335">ldns_udp_bgsend()</a>, and <a class="el" href="net_8c_source.html#l00506">ldns_udp_read_wire()</a>.</p>

</div>
</div>
<a class="anchor" id="a84751182c6fa8f75ff79da83c18c0954"></a><!-- doxytag: member="net.h::ldns_udp_bgsend" ref="a84751182c6fa8f75ff79da83c18c0954" args="(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_udp_bgsend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qbin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send an udp query and don't wait for an answer but return the socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the ldns_buffer to be send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>the ip addr to send to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>length of the ip addr </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>*unused*, was the timeout value for the network </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the socket used </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00335">335</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="net_8c_source.html#l00358">ldns_udp_connect()</a>, and <a class="el" href="net_8c_source.html#l00488">ldns_udp_send_query()</a>.</p>

</div>
</div>
<a class="anchor" id="a8c4de333a55065818703c26c4464ba70"></a><!-- doxytag: member="net.h::ldns_tcp_bgsend" ref="a8c4de333a55065818703c26c4464ba70" args="(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_tcp_bgsend </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qbin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Send an tcp query and don't wait for an answer but return the socket. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the ldns_buffer to be send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>the ip addr to send to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>length of the ip addr </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>the timeout value for the connect attempt </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the socket used </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00681">681</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="net_8c_source.html#l00373">ldns_tcp_connect()</a>, and <a class="el" href="net_8c_source.html#l00463">ldns_tcp_send_query()</a>.</p>

</div>
</div>
<a class="anchor" id="a8eef624207f9e36c10f0805b46b80e62"></a><!-- doxytag: member="net.h::ldns_tcp_send" ref="a8eef624207f9e36c10f0805b46b80e62" args="(uint8_t **result, ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout, size_t *answersize)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_tcp_send </td>
          <td>(</td>
          <td class="paramtype">uint8_t **&#160;</td>
          <td class="paramname"><em>result</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qbin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>answersize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends a buffer to an ip using tcp and return the respons as a ldns_pkt. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the ldns_buffer to be send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the ldns_buffer to be send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>the ip addr to send to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>length of the ip addr </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>the timeout value for the network </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">answersize</td><td>size of the packet </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">result</td><td>packet with the answer </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00647">647</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00034">LDNS_STATUS_MEM_ERR</a>, <a class="el" href="error_8h_source.html#l00046">LDNS_STATUS_NETWORK_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="net_8c_source.html#l00681">ldns_tcp_bgsend()</a>, <a class="el" href="net_8c_source.html#l00536">ldns_tcp_read_wire_timeout()</a>, and <a class="el" href="util_8h_source.html#l00057">LDNS_XREALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="ae8d445949587087d2c91748f5e39c8c1"></a><!-- doxytag: member="net.h::ldns_send" ref="ae8d445949587087d2c91748f5e39c8c1" args="(ldns_pkt **pkt, ldns_resolver *r, const ldns_pkt *query_pkt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_send </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> **&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__resolver.html">ldns_resolver</a> *&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> *&#160;</td>
          <td class="paramname"><em>query_pkt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends ptk to the nameserver at the resolver object. </p>
<p>Returns the data as a ldns_pkt</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">pkt</td><td>packet received from the nameserver </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the resolver to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_pkt</td><td>the query to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00035">35</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="buffer_8h_source.html#l00033">LDNS_MIN_BUFLEN</a>, <a class="el" href="host2wire_8c_source.html#l00268">ldns_pkt2buffer_wire()</a>, <a class="el" href="packet_8c_source.html#l00444">ldns_pkt_tsig()</a>, <a class="el" href="rr_8c_source.html#l00839">ldns_rr_rdf()</a>, <a class="el" href="net_8c_source.html#l00060">ldns_send_buffer()</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, and <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>.</p>

</div>
</div>
<a class="anchor" id="a1c79e22528bdea08ec1e16ddb7bca1ec"></a><!-- doxytag: member="net.h::ldns_send_buffer" ref="a1c79e22528bdea08ec1e16ddb7bca1ec" args="(ldns_pkt **pkt, ldns_resolver *r, ldns_buffer *qb, ldns_rdf *tsig_mac)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_send_buffer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__pkt.html">ldns_pkt</a> **&#160;</td>
          <td class="paramname"><em>pkt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__resolver.html">ldns_resolver</a> *&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>tsig_mac</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sends and ldns_buffer (presumably containing a packet to the nameserver at the resolver object. </p>
<p>Returns the data as a ldns_pkt</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">pkt</td><td>packet received from the nameserver </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the resolver to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">qb</td><td>the buffer to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tsig_mac</td><td>the tsig MAC to authenticate the response with (NULL to do no TSIG authentication) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>status </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00060">60</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="packet_8c_source.html#l00572">ldns_pkt_set_answerfrom()</a>, <a class="el" href="packet_8c_source.html#l00566">ldns_pkt_set_querytime()</a>, <a class="el" href="packet_8c_source.html#l00585">ldns_pkt_set_size()</a>, <a class="el" href="packet_8c_source.html#l00578">ldns_pkt_set_timestamp()</a>, <a class="el" href="tsig_8c_source.html#l00278">ldns_pkt_tsig_verify()</a>, <a class="el" href="net_8c_source.html#l00706">ldns_rdf2native_sockaddr_storage()</a>, <a class="el" href="resolver_8h_source.html#l00050">LDNS_RESOLV_INET</a>, <a class="el" href="resolver_8h_source.html#l00051">LDNS_RESOLV_INET6</a>, <a class="el" href="resolver_8h_source.html#l00053">LDNS_RESOLV_RTT_INF</a>, <a class="el" href="resolver_8c_source.html#l00078">ldns_resolver_fail()</a>, <a class="el" href="resolver_8c_source.html#l00054">ldns_resolver_ip6()</a>, <a class="el" href="resolver_8c_source.html#l00108">ldns_resolver_nameserver_count()</a>, <a class="el" href="resolver_8c_source.html#l00102">ldns_resolver_nameservers()</a>, <a class="el" href="resolver_8c_source.html#l01333">ldns_resolver_nameservers_randomize()</a>, <a class="el" href="resolver_8c_source.html#l00024">ldns_resolver_port()</a>, <a class="el" href="resolver_8c_source.html#l00219">ldns_resolver_random()</a>, <a class="el" href="resolver_8c_source.html#l00042">ldns_resolver_retrans()</a>, <a class="el" href="resolver_8c_source.html#l00036">ldns_resolver_retry()</a>, <a class="el" href="resolver_8c_source.html#l00171">ldns_resolver_rtt()</a>, <a class="el" href="resolver_8c_source.html#l00485">ldns_resolver_set_nameserver_rtt()</a>, <a class="el" href="resolver_8c_source.html#l00195">ldns_resolver_timeout()</a>, <a class="el" href="resolver_8c_source.html#l00213">ldns_resolver_tsig_keydata()</a>, <a class="el" href="resolver_8c_source.html#l00201">ldns_resolver_tsig_keyname()</a>, <a class="el" href="resolver_8c_source.html#l00165">ldns_resolver_usevc()</a>, <a class="el" href="error_8h_source.html#l00064">LDNS_STATUS_CRYPTO_TSIG_BOGUS</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="error_8h_source.html#l00070">LDNS_STATUS_RES_NO_NS</a>, <a class="el" href="net_8c_source.html#l00647">ldns_tcp_send()</a>, <a class="el" href="net_8c_source.html#l00291">ldns_udp_send()</a>, <a class="el" href="wire2host_8c_source.html#l00370">ldns_wire2pkt()</a>, and <a class="el" href="config_8h_source.html#l00503">sleep</a>.</p>

</div>
</div>
<a class="anchor" id="a734323eed74db2d1db4404a061686a6b"></a><!-- doxytag: member="net.h::ldns_tcp_connect" ref="a734323eed74db2d1db4404a061686a6b" args="(const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_tcp_connect </td>
          <td>(</td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a tcp socket to the specified address. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>ip and family </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>length of to </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>timeout for the connect attempt </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a socket descriptor </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00373">373</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

</div>
</div>
<a class="anchor" id="a62a3f9693524a2a7ec571fcda5121629"></a><!-- doxytag: member="net.h::ldns_udp_connect" ref="a62a3f9693524a2a7ec571fcda5121629" args="(const struct sockaddr_storage *to, struct timeval timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ldns_udp_connect </td>
          <td>(</td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a udp socket to the specified address. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>ip and family </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>*unused*, was timeout for the socket </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a socket descriptor </dd></dl>

</div>
</div>
<a class="anchor" id="a690205442102fe4b606b5679241fce04"></a><!-- doxytag: member="net.h::ldns_tcp_send_query" ref="a690205442102fe4b606b5679241fce04" args="(ldns_buffer *qbin, int sockfd, const struct sockaddr_storage *to, socklen_t tolen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t ldns_tcp_send_query </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qbin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>send a query via tcp to a server. </p>
<p>Don't want for the answer</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the buffer to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>the socket to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>which ip to send it </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>socketlen </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes sent </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00463">463</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="buffer_8c_source.html#l00149">ldns_buffer_export()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="af4cb429eb90f49cab4cb8e61081682c6"></a><!-- doxytag: member="net.h::ldns_udp_send_query" ref="af4cb429eb90f49cab4cb8e61081682c6" args="(ldns_buffer *qbin, int sockfd, const struct sockaddr_storage *to, socklen_t tolen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ssize_t ldns_udp_send_query </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__buffer.html">ldns_buffer</a> *&#160;</td>
          <td class="paramname"><em>qbin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>to</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t&#160;</td>
          <td class="paramname"><em>tolen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>send a query via udp to a server. </p>
<p>Don;t want for the answer</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">qbin</td><td>the buffer to send </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>the socket to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">to</td><td>which ip to send it </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tolen</td><td>socketlen </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of bytes sent </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00488">488</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

</div>
</div>
<a class="anchor" id="a0ec64fcdbe349ca15283fee443d06737"></a><!-- doxytag: member="net.h::ldns_tcp_read_wire_timeout" ref="a0ec64fcdbe349ca15283fee443d06737" args="(int sockfd, size_t *size, struct timeval timeout)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ldns_tcp_read_wire_timeout </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct timeval&#160;</td>
          <td class="paramname"><em>timeout</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gives back a raw packet from the wire and reads the header data from the given socket. </p>
<p>Allocates the data (of size size) itself, so don't forget to free</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>the socket to read from </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>the number of bytes that are read </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timeout</td><td>the time allowed between packets. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data read </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00536">536</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a3f7bd944f2cb1ea28bd8dd056c16e07d"></a><!-- doxytag: member="net.h::ldns_tcp_read_wire" ref="a3f7bd944f2cb1ea28bd8dd056c16e07d" args="(int sockfd, size_t *size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ldns_tcp_read_wire </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This routine may block. </p>
<p>Use ldns_tcp_read_wire_timeout, it checks timeouts. Gives back a raw packet from the wire and reads the header data from the given socket. Allocates the data (of size size) itself, so don't forget to free</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>the socket to read from </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>the number of bytes that are read </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data read </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00595">595</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, and <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="aafca8bce8ea9febd9797c8dbb3931fbb"></a><!-- doxytag: member="net.h::ldns_udp_read_wire" ref="aafca8bce8ea9febd9797c8dbb3931fbb" args="(int sockfd, size_t *size, struct sockaddr_storage *fr, socklen_t *frlen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* ldns_udp_read_wire </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>sockfd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>fr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">socklen_t *&#160;</td>
          <td class="paramname"><em>frlen</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Gives back a raw packet from the wire and reads the header data from the given socket. </p>
<p>Allocates the data (of size size) itself, so don't forget to free</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sockfd</td><td>the socket to read from </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fr</td><td>the address of the client (if applicable) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">*frlen</td><td>the lenght of the client's addr (if applicable) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>the number of bytes that are read </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the data read </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00506">506</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="util_8h_source.html#l00051">LDNS_XMALLOC</a>, and <a class="el" href="util_8h_source.html#l00057">LDNS_XREALLOC</a>.</p>

</div>
</div>
<a class="anchor" id="a897b9376491b14bb57cdda6e6511464f"></a><!-- doxytag: member="net.h::ldns_rdf2native_sockaddr_storage" ref="a897b9376491b14bb57cdda6e6511464f" args="(const ldns_rdf *rd, uint16_t port, size_t *size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sockaddr_storage* ldns_rdf2native_sockaddr_storage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>rd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&#160;</td>
          <td class="paramname"><em>port</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns the native sockaddr representation from the rdf. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rd</td><td>the ldns_rdf to operate on </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>what port to use. 0 means; use default (53) </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">size</td><td>what is the size of the sockaddr_storage </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>struct sockaddr* the address in the format so other functions can use it (sendto) </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00706">706</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="util_8h_source.html#l00049">LDNS_MALLOC</a>, <a class="el" href="ldns_8h_source.html#l00130">LDNS_PORT</a>, <a class="el" href="rdata_8c_source.html#l00038">ldns_rdf_data()</a>, <a class="el" href="rdata_8c_source.html#l00031">ldns_rdf_get_type()</a>, <a class="el" href="rdata_8c_source.html#l00024">ldns_rdf_size()</a>, <a class="el" href="rdata_8h_source.html#l00057">LDNS_RDF_TYPE_A</a>, and <a class="el" href="rdata_8h_source.html#l00059">LDNS_RDF_TYPE_AAAA</a>.</p>

</div>
</div>
<a class="anchor" id="a88f2c363ffaec397410555b4f2fb9668"></a><!-- doxytag: member="net.h::ldns_sockaddr_storage2rdf" ref="a88f2c363ffaec397410555b4f2fb9668" args="(struct sockaddr_storage *sock, uint16_t *port)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a>* ldns_sockaddr_storage2rdf </td>
          <td>(</td>
          <td class="paramtype">struct sockaddr_storage *&#160;</td>
          <td class="paramname"><em>sock</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t *&#160;</td>
          <td class="paramname"><em>port</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>returns an rdf with the sockaddr info. </p>
<p>works for ip4 and ip6 </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sock</td><td>the struct sockaddr_storage to convert </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">port</td><td>what port was used. When NULL this is not set </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_rdf* wth the address </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00749">749</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="ldns_8h_source.html#l00128">LDNS_IP4ADDRLEN</a>, <a class="el" href="ldns_8h_source.html#l00129">LDNS_IP6ADDRLEN</a>, <a class="el" href="rdata_8c_source.html#l00193">ldns_rdf_new_frm_data()</a>, <a class="el" href="rdata_8h_source.html#l00057">LDNS_RDF_TYPE_A</a>, and <a class="el" href="rdata_8h_source.html#l00059">LDNS_RDF_TYPE_AAAA</a>.</p>

</div>
</div>
<a class="anchor" id="a31ceb08c8123dbac5c02cab63502ceb4"></a><!-- doxytag: member="net.h::ldns_axfr_start" ref="a31ceb08c8123dbac5c02cab63502ceb4" args="(ldns_resolver *resolver, ldns_rdf *domain, ldns_rr_class c)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="error_8h.html#aaa6d98f86f535cf87b83b89e91f488f9">ldns_status</a> ldns_axfr_start </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structldns__struct__resolver.html">ldns_resolver</a> *&#160;</td>
          <td class="paramname"><em>resolver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structldns__struct__rdf.html">ldns_rdf</a> *&#160;</td>
          <td class="paramname"><em>domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rr_8h.html#aa11e99c7e7c630e03373f2a2cafc4ee9">ldns_rr_class</a>&#160;</td>
          <td class="paramname"><em>c</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Prepares the resolver for an axfr query The query is sent and the answers can be read with ldns_axfr_next. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">resolver</td><td>the resolver to use </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">domain</td><td>the domain to exfr </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">c</td><td>the class to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>ldns_status the status of the transfer </dd></dl>

<p>Definition at line <a class="el" href="net_8c_source.html#l00784">784</a> of file <a class="el" href="net_8c_source.html">net.c</a>.</p>

<p>References <a class="el" href="resolver_8h_source.html#l00121">ldns_struct_resolver::_axfr_soa_count</a>, <a class="el" href="resolver_8h_source.html#l00065">ldns_struct_resolver::_nameservers</a>, <a class="el" href="resolver_8h_source.html#l00117">ldns_struct_resolver::_socket</a>, <a class="el" href="buffer_8c_source.html#l00137">ldns_buffer_free()</a>, <a class="el" href="buffer_8c_source.html#l00016">ldns_buffer_new()</a>, <a class="el" href="util_8h_source.html#l00060">LDNS_FREE</a>, <a class="el" href="packet_8h_source.html#l00024">LDNS_MAX_PACKETLEN</a>, <a class="el" href="host2wire_8c_source.html#l00268">ldns_pkt2buffer_wire()</a>, <a class="el" href="packet_8c_source.html#l00776">ldns_pkt_free()</a>, <a class="el" href="packet_8c_source.html#l00874">ldns_pkt_query_new()</a>, <a class="el" href="tsig_8c_source.html#l00354">ldns_pkt_tsig_sign()</a>, <a class="el" href="net_8c_source.html#l00706">ldns_rdf2native_sockaddr_storage()</a>, <a class="el" href="rdata_8c_source.html#l00222">ldns_rdf_clone()</a>, <a class="el" href="resolver_8c_source.html#l00108">ldns_resolver_nameserver_count()</a>, <a class="el" href="resolver_8c_source.html#l00024">ldns_resolver_port()</a>, <a class="el" href="resolver_8c_source.html#l00195">ldns_resolver_timeout()</a>, <a class="el" href="resolver_8c_source.html#l00207">ldns_resolver_tsig_algorithm()</a>, <a class="el" href="resolver_8c_source.html#l00213">ldns_resolver_tsig_keydata()</a>, <a class="el" href="resolver_8c_source.html#l00201">ldns_resolver_tsig_keyname()</a>, <a class="el" href="rr_8h_source.html#l00194">LDNS_RR_TYPE_AXFR</a>, <a class="el" href="error_8h_source.html#l00047">LDNS_STATUS_ADDRESS_ERR</a>, <a class="el" href="error_8h_source.html#l00065">LDNS_STATUS_CRYPTO_TSIG_ERR</a>, <a class="el" href="error_8h_source.html#l00037">LDNS_STATUS_ERR</a>, <a class="el" href="error_8h_source.html#l00034">LDNS_STATUS_MEM_ERR</a>, <a class="el" href="error_8h_source.html#l00046">LDNS_STATUS_NETWORK_ERR</a>, <a class="el" href="error_8h_source.html#l00026">LDNS_STATUS_OK</a>, <a class="el" href="net_8c_source.html#l00373">ldns_tcp_connect()</a>, and <a class="el" href="net_8c_source.html#l00463">ldns_tcp_send_query()</a>.</p>

</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Wed Jan 11 2012 for ldns by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>