<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>unbound: serviced_query Struct Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.5.9 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div class="contents"> <h1>serviced_query Struct Reference</h1><!-- doxytag: class="serviced_query" -->Query service record. <a href="#_details">More...</a> <p> <code>#include <outside_network.h></code> <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd">serviced_query_status</a> { <br> <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcdc389662fe4d5091373e2505f6175f2fb">serviced_initial</a>, <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd2c15d87db29f044af02536524134b145">serviced_query_UDP_EDNS</a>, <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcdca99d0143aeadf861f6f4a80788a1ddf">serviced_query_UDP</a>, <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcdffb9098e542c8dab11e6be14cc3d27a0">serviced_query_TCP_EDNS</a>, <br> <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd722402b1e1f94ead27e50274836a1265">serviced_query_TCP</a>, <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd6851b0903f4e9d2cd0c0d558d9bfed3e">serviced_query_PROBE_EDNS</a> <br> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">current status <a href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd">More...</a><br></td></tr> <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="682869235793f9e9b2c70bf5d5789c88"></a><!-- doxytag: member="serviced_query::node" ref="682869235793f9e9b2c70bf5d5789c88" args="" --> <a class="el" href="structrbnode__t.html">rbnode_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#682869235793f9e9b2c70bf5d5789c88">node</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The rbtree node, key is this record. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#09a7f9e20ca541745d602d6b14d8d980">qbuf</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">The query that needs to be answered. <a href="#09a7f9e20ca541745d602d6b14d8d980"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#e50046c5373a509dbc7e08ebd9547089">qbuflen</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">length of qbuf. <a href="#e50046c5373a509dbc7e08ebd9547089"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#94fc3610304fd7786b95b3da86eadd31">dnssec</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">If an EDNS section is included, the DO/CD bit will be turned on. <a href="#94fc3610304fd7786b95b3da86eadd31"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c7631b9d7c59e49a8219e489d1249375"></a><!-- doxytag: member="serviced_query::addr" ref="c7631b9d7c59e49a8219e489d1249375" args="" --> struct sockaddr_storage </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#c7631b9d7c59e49a8219e489d1249375">addr</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">where to send it <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">socklen_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#96664d01f534a72e772368637a7cea65">addrlen</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">length of addr field in use. <a href="#96664d01f534a72e772368637a7cea65"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">enum <br class="typebreak"> <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd">serviced_query::serviced_query_status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#a157e7e4a16c7ccf367f0ccd5daea6cf">status</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">current status <a href="#a157e7e4a16c7ccf367f0ccd5daea6cf"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4e1ddd6b0f9947e2cba8875b60ce6e5f"></a><!-- doxytag: member="serviced_query::to_be_deleted" ref="4e1ddd6b0f9947e2cba8875b60ce6e5f" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#4e1ddd6b0f9947e2cba8875b60ce6e5f">to_be_deleted</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">true if <a class="el" href="structserviced__query.html" title="Query service record.">serviced_query</a> is scheduled for deletion already <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="29b4c04c634eca585f57a5c7e9bc5ef2"></a><!-- doxytag: member="serviced_query::retry" ref="29b4c04c634eca585f57a5c7e9bc5ef2" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#29b4c04c634eca585f57a5c7e9bc5ef2">retry</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">number of UDP retries <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9d40be29ac0e0d1da80b27ff3c7e86af"></a><!-- doxytag: member="serviced_query::last_sent_time" ref="9d40be29ac0e0d1da80b27ff3c7e86af" args="" --> struct timeval </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#9d40be29ac0e0d1da80b27ff3c7e86af">last_sent_time</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">time last UDP was sent <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a121502a2a80cca54b478866f881cc56"></a><!-- doxytag: member="serviced_query::last_rtt" ref="a121502a2a80cca54b478866f881cc56" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#a121502a2a80cca54b478866f881cc56">last_rtt</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">rtt of last (UDP) message <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a0b15fcc12d7f54296d4bc189383df33"></a><!-- doxytag: member="serviced_query::edns_lame_known" ref="a0b15fcc12d7f54296d4bc189383df33" args="" --> int </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#a0b15fcc12d7f54296d4bc189383df33">edns_lame_known</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">do we know edns probe status already, for UDP_EDNS queries <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cfcf4064892ba646f3e4fbfb1f347c54"></a><!-- doxytag: member="serviced_query::outnet" ref="cfcf4064892ba646f3e4fbfb1f347c54" args="" --> struct <a class="el" href="structoutside__network.html">outside_network</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#cfcf4064892ba646f3e4fbfb1f347c54">outnet</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">outside network this is part of <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structservice__callback.html">service_callback</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#7033f1fae1025ca66514757b70c3a36f">cblist</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">list of interested parties that need callback on results. <a href="#7033f1fae1025ca66514757b70c3a36f"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2bea64ec122beb6e191c816306fceff8"></a><!-- doxytag: member="serviced_query::pending" ref="2bea64ec122beb6e191c816306fceff8" args="" --> void * </td><td class="memItemRight" valign="bottom"><a class="el" href="structserviced__query.html#2bea64ec122beb6e191c816306fceff8">pending</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">the UDP or TCP query that is <a class="el" href="structpending.html" title="A query that has an answer pending for it.">pending</a>, see status which <br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Query service record. <p> Contains query and destination. UDP, TCP, EDNS are all tried. complete with retries and timeouts. A number of interested parties can receive a callback. <hr><h2>Member Enumeration Documentation</h2> <a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcd"></a><!-- doxytag: member="serviced_query::serviced_query_status" ref="bb309a526dbf189229a65ff9c35dbdcd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd">serviced_query::serviced_query_status</a> </td> </tr> </table> </div> <div class="memdoc"> <p> current status <p> <dl compact><dt><b>Enumerator: </b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcdc389662fe4d5091373e2505f6175f2fb"></a><!-- doxytag: member="serviced_initial" ref="bb309a526dbf189229a65ff9c35dbdcdc389662fe4d5091373e2505f6175f2fb" args="" -->serviced_initial</em> </td><td> initial status </td></tr> <tr><td valign="top"><em><a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcd2c15d87db29f044af02536524134b145"></a><!-- doxytag: member="serviced_query_UDP_EDNS" ref="bb309a526dbf189229a65ff9c35dbdcd2c15d87db29f044af02536524134b145" args="" -->serviced_query_UDP_EDNS</em> </td><td> UDP with EDNS sent. </td></tr> <tr><td valign="top"><em><a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcdca99d0143aeadf861f6f4a80788a1ddf"></a><!-- doxytag: member="serviced_query_UDP" ref="bb309a526dbf189229a65ff9c35dbdcdca99d0143aeadf861f6f4a80788a1ddf" args="" -->serviced_query_UDP</em> </td><td> UDP without EDNS sent. </td></tr> <tr><td valign="top"><em><a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcdffb9098e542c8dab11e6be14cc3d27a0"></a><!-- doxytag: member="serviced_query_TCP_EDNS" ref="bb309a526dbf189229a65ff9c35dbdcdffb9098e542c8dab11e6be14cc3d27a0" args="" -->serviced_query_TCP_EDNS</em> </td><td> TCP with EDNS sent. </td></tr> <tr><td valign="top"><em><a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcd722402b1e1f94ead27e50274836a1265"></a><!-- doxytag: member="serviced_query_TCP" ref="bb309a526dbf189229a65ff9c35dbdcd722402b1e1f94ead27e50274836a1265" args="" -->serviced_query_TCP</em> </td><td> TCP without EDNS sent. </td></tr> <tr><td valign="top"><em><a class="anchor" name="bb309a526dbf189229a65ff9c35dbdcd6851b0903f4e9d2cd0c0d558d9bfed3e"></a><!-- doxytag: member="serviced_query_PROBE_EDNS" ref="bb309a526dbf189229a65ff9c35dbdcd6851b0903f4e9d2cd0c0d558d9bfed3e" args="" -->serviced_query_PROBE_EDNS</em> </td><td> probe to test EDNS lameness (EDNS is dropped) </td></tr> </table> </dl> </div> </div><p> <hr><h2>Field Documentation</h2> <a class="anchor" name="09a7f9e20ca541745d602d6b14d8d980"></a><!-- doxytag: member="serviced_query::qbuf" ref="09a7f9e20ca541745d602d6b14d8d980" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint8_t* <a class="el" href="structserviced__query.html#09a7f9e20ca541745d602d6b14d8d980">serviced_query::qbuf</a> </td> </tr> </table> </div> <div class="memdoc"> <p> The query that needs to be answered. <p> Starts with flags u16, then qdcount, ..., including qname, qtype, qclass. Does not include EDNS record. <p>Referenced by <a class="el" href="outside__network_8c_source.html#l01056">lookup_serviced()</a>, <a class="el" href="outside__network_8c_source.html#l01556">outnet_serviced_query()</a>, <a class="el" href="outside__network_8c_source.html#l01308">serviced_callbacks()</a>, <a class="el" href="outside__network_8c_source.html#l00092">serviced_cmp()</a>, <a class="el" href="outside__network_8c_source.html#l01072">serviced_create()</a>, <a class="el" href="outside__network_8c_source.html#l01192">serviced_encode()</a>, <a class="el" href="outside__network_8c_source.html#l00601">serviced_node_del()</a>, and <a class="el" href="outside__network_8c_source.html#l01441">serviced_udp_callback()</a>.</p> </div> </div><p> <a class="anchor" name="e50046c5373a509dbc7e08ebd9547089"></a><!-- doxytag: member="serviced_query::qbuflen" ref="e50046c5373a509dbc7e08ebd9547089" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="structserviced__query.html#e50046c5373a509dbc7e08ebd9547089">serviced_query::qbuflen</a> </td> </tr> </table> </div> <div class="memdoc"> <p> length of qbuf. <p> <p>Referenced by <a class="el" href="outside__network_8c_source.html#l01056">lookup_serviced()</a>, <a class="el" href="outside__network_8c_source.html#l01664">outnet_get_mem()</a>, <a class="el" href="outside__network_8c_source.html#l01308">serviced_callbacks()</a>, <a class="el" href="outside__network_8c_source.html#l00092">serviced_cmp()</a>, <a class="el" href="outside__network_8c_source.html#l01072">serviced_create()</a>, <a class="el" href="outside__network_8c_source.html#l01192">serviced_encode()</a>, and <a class="el" href="outside__network_8c_source.html#l01710">serviced_get_mem()</a>.</p> </div> </div><p> <a class="anchor" name="94fc3610304fd7786b95b3da86eadd31"></a><!-- doxytag: member="serviced_query::dnssec" ref="94fc3610304fd7786b95b3da86eadd31" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="structserviced__query.html#94fc3610304fd7786b95b3da86eadd31">serviced_query::dnssec</a> </td> </tr> </table> </div> <div class="memdoc"> <p> If an EDNS section is included, the DO/CD bit will be turned on. <p> <p>Referenced by <a class="el" href="outside__network_8c_source.html#l01056">lookup_serviced()</a>, <a class="el" href="outside__network_8c_source.html#l00092">serviced_cmp()</a>, <a class="el" href="outside__network_8c_source.html#l01072">serviced_create()</a>, and <a class="el" href="outside__network_8c_source.html#l01192">serviced_encode()</a>.</p> </div> </div><p> <a class="anchor" name="96664d01f534a72e772368637a7cea65"></a><!-- doxytag: member="serviced_query::addrlen" ref="96664d01f534a72e772368637a7cea65" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">socklen_t <a class="el" href="structserviced__query.html#96664d01f534a72e772368637a7cea65">serviced_query::addrlen</a> </td> </tr> </table> </div> <div class="memdoc"> <p> length of addr field in use. <p> <p>Referenced by <a class="el" href="outside__network_8c_source.html#l01056">lookup_serviced()</a>, <a class="el" href="outside__network_8c_source.html#l01308">serviced_callbacks()</a>, <a class="el" href="outside__network_8c_source.html#l00092">serviced_cmp()</a>, <a class="el" href="outside__network_8c_source.html#l01072">serviced_create()</a>, <a class="el" href="outside__network_8c_source.html#l01389">serviced_tcp_callback()</a>, <a class="el" href="outside__network_8c_source.html#l01425">serviced_tcp_initiate()</a>, <a class="el" href="outside__network_8c_source.html#l01441">serviced_udp_callback()</a>, and <a class="el" href="outside__network_8c_source.html#l01227">serviced_udp_send()</a>.</p> </div> </div><p> <a class="anchor" name="a157e7e4a16c7ccf367f0ccd5daea6cf"></a><!-- doxytag: member="serviced_query::status" ref="a157e7e4a16c7ccf367f0ccd5daea6cf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="structserviced__query.html#bb309a526dbf189229a65ff9c35dbdcd">serviced_query::serviced_query_status</a> <a class="el" href="structserviced__query.html#a157e7e4a16c7ccf367f0ccd5daea6cf">serviced_query::status</a> </td> </tr> </table> </div> <div class="memdoc"> <p> current status <p> variable with current status <p>Referenced by <a class="el" href="outside__network_8c_source.html#l01072">serviced_create()</a>, <a class="el" href="outside__network_8c_source.html#l01122">serviced_delete()</a>, <a class="el" href="outside__network_8c_source.html#l01710">serviced_get_mem()</a>, <a class="el" href="outside__network_8c_source.html#l01389">serviced_tcp_callback()</a>, <a class="el" href="outside__network_8c_source.html#l01425">serviced_tcp_initiate()</a>, <a class="el" href="outside__network_8c_source.html#l01441">serviced_udp_callback()</a>, and <a class="el" href="outside__network_8c_source.html#l01227">serviced_udp_send()</a>.</p> </div> </div><p> <a class="anchor" name="7033f1fae1025ca66514757b70c3a36f"></a><!-- doxytag: member="serviced_query::cblist" ref="7033f1fae1025ca66514757b70c3a36f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structservice__callback.html">service_callback</a>* <a class="el" href="structserviced__query.html#7033f1fae1025ca66514757b70c3a36f">serviced_query::cblist</a><code> [read]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> list of interested parties that need callback on results. <p> <p>Referenced by <a class="el" href="outside__network_8c_source.html#l01544">callback_list_find()</a>, <a class="el" href="outside__network_8c_source.html#l01601">callback_list_remove()</a>, <a class="el" href="outside__network_8c_source.html#l01664">outnet_get_mem()</a>, <a class="el" href="outside__network_8c_source.html#l01556">outnet_serviced_query()</a>, <a class="el" href="outside__network_8c_source.html#l01615">outnet_serviced_query_stop()</a>, <a class="el" href="outside__network_8c_source.html#l01308">serviced_callbacks()</a>, <a class="el" href="outside__network_8c_source.html#l01072">serviced_create()</a>, <a class="el" href="outside__network_8c_source.html#l01710">serviced_get_mem()</a>, and <a class="el" href="outside__network_8c_source.html#l00601">serviced_node_del()</a>.</p> </div> </div><p> <hr>The documentation for this struct was generated from the following file:<ul> <li>services/<a class="el" href="outside__network_8h.html">outside_network.h</a></ul> </div> <hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:34 2009 for unbound by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> </body> </html>