<!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: msg_parse 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>msg_parse Struct Reference</h1><!-- doxytag: class="msg_parse" -->Data stored in scratch pad memory during parsing. <a href="#_details">More...</a> <p> <code>#include <msgparse.h></code> <p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Data Fields</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#9724c67d73a218cddeb5edac37a15214">id</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">id from message, network format. <a href="#9724c67d73a218cddeb5edac37a15214"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#83dba74c5076cb4f983d2c45c6736e7b">flags</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">flags from message, host format. <a href="#83dba74c5076cb4f983d2c45c6736e7b"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f6597403e7cb6fb1eba7e55758310d63"></a><!-- doxytag: member="msg_parse::qdcount" ref="f6597403e7cb6fb1eba7e55758310d63" args="" --> uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#f6597403e7cb6fb1eba7e55758310d63">qdcount</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRs, host format <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1f8811ba4cff8ca49fdb523ac32bd1c9"></a><!-- doxytag: member="msg_parse::ancount" ref="1f8811ba4cff8ca49fdb523ac32bd1c9" args="" --> uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#1f8811ba4cff8ca49fdb523ac32bd1c9">ancount</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRs, host format <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0f31ea063bff4e168e8db19a2a3ab9f4"></a><!-- doxytag: member="msg_parse::nscount" ref="0f31ea063bff4e168e8db19a2a3ab9f4" args="" --> uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#0f31ea063bff4e168e8db19a2a3ab9f4">nscount</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRs, host format <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="978b433c78b4b3f84bccb269b909affe"></a><!-- doxytag: member="msg_parse::arcount" ref="978b433c78b4b3f84bccb269b909affe" args="" --> uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#978b433c78b4b3f84bccb269b909affe">arcount</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRs, host format <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#5783ba9586b3a4163335530267eecf18">an_rrsets</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRsets per section. <a href="#5783ba9586b3a4163335530267eecf18"></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="structmsg__parse.html#cd8641aa3b0f96f3f49c5ca2b3c95808">ns_rrsets</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRsets per section. <a href="#cd8641aa3b0f96f3f49c5ca2b3c95808"></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="structmsg__parse.html#c7739cdc64dc2fc2e34348f36fd429e9">ar_rrsets</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">count of RRsets per section. <a href="#c7739cdc64dc2fc2e34348f36fd429e9"></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="structmsg__parse.html#a65e7b32847dc0b431fb8ff1b6fa5a0a">rrset_count</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">total number of rrsets found. <a href="#a65e7b32847dc0b431fb8ff1b6fa5a0a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0cdb50c2a9dc4b751deba4153addb22b"></a><!-- doxytag: member="msg_parse::qname" ref="0cdb50c2a9dc4b751deba4153addb22b" args="" --> uint8_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#0cdb50c2a9dc4b751deba4153addb22b">qname</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">query dname (pointer to start location in packet, NULL if none <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d9b1d1e25cb5911649579321022811dc"></a><!-- doxytag: member="msg_parse::qname_len" ref="d9b1d1e25cb5911649579321022811dc" args="" --> size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#d9b1d1e25cb5911649579321022811dc">qname_len</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">length of query dname in octets, 0 if none <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#477a89388d195c0442704668bd0aa256">qtype</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">query type, host order. <a href="#477a89388d195c0442704668bd0aa256"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">uint16_t </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#97948aa194d20106a003c96dcf82ac35">qclass</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">query class, host order. <a href="#97948aa194d20106a003c96dcf82ac35"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structrrset__parse.html">rrset_parse</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#dcc05e232447b79d4e15e5e6f2c8736d">hashtable</a> [PARSE_TABLE_SIZE]</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Hash table array used during parsing to lookup rrset types. <a href="#dcc05e232447b79d4e15e5e6f2c8736d"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structrrset__parse.html">rrset_parse</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#d982a37590a83b9aae065aec5e5c9cd6">rrset_first</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">linked list of rrsets that have been found (in order). <a href="#d982a37590a83b9aae065aec5e5c9cd6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structrrset__parse.html">rrset_parse</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="structmsg__parse.html#f4344b7c00f28f4816bfc80068d61493">rrset_last</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">last element of rrset list. <a href="#f4344b7c00f28f4816bfc80068d61493"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Data stored in scratch pad memory during parsing. <p> Stores the data that will enter into the msgreply and packet result. <hr><h2>Field Documentation</h2> <a class="anchor" name="9724c67d73a218cddeb5edac37a15214"></a><!-- doxytag: member="msg_parse::id" ref="9724c67d73a218cddeb5edac37a15214" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint16_t <a class="el" href="structmsg__parse.html#9724c67d73a218cddeb5edac37a15214">msg_parse::id</a> </td> </tr> </table> </div> <div class="memdoc"> <p> id from message, network format. <p> <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00863">parse_packet()</a>.</p> </div> </div><p> <a class="anchor" name="83dba74c5076cb4f983d2c45c6736e7b"></a><!-- doxytag: member="msg_parse::flags" ref="83dba74c5076cb4f983d2c45c6736e7b" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint16_t <a class="el" href="structmsg__parse.html#83dba74c5076cb4f983d2c45c6736e7b">msg_parse::flags</a> </td> </tr> </table> </div> <div class="memdoc"> <p> flags from message, host format. <p> <p>Referenced by <a class="el" href="msgreply_8c_source.html#l00296">get_rrset_trust()</a>, <a class="el" href="msgreply_8c_source.html#l00116">parse_create_repinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00863">parse_packet()</a>, <a class="el" href="iterator_8c_source.html#l02011">process_response()</a>, <a class="el" href="iter__scrub_8c_source.html#l00668">scrub_message()</a>, <a class="el" href="iter__scrub_8c_source.html#l00318">scrub_normalize()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00565">scrub_sanitize()</a>.</p> </div> </div><p> <a class="anchor" name="5783ba9586b3a4163335530267eecf18"></a><!-- doxytag: member="msg_parse::an_rrsets" ref="5783ba9586b3a4163335530267eecf18" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="structmsg__parse.html#5783ba9586b3a4163335530267eecf18">msg_parse::an_rrsets</a> </td> </tr> </table> </div> <div class="memdoc"> <p> count of RRsets per section. <p> <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00374">change_rrsig_rrset()</a>, <a class="el" href="msgparse_8c_source.html#l00270">change_section()</a>, <a class="el" href="msgreply_8c_source.html#l00116">parse_create_repinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00863">parse_packet()</a>, <a class="el" href="iter__scrub_8c_source.html#l00062">remove_rrset()</a>, <a class="el" href="iter__scrub_8c_source.html#l00565">scrub_sanitize()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00230">synth_cname_rrset()</a>.</p> </div> </div><p> <a class="anchor" name="cd8641aa3b0f96f3f49c5ca2b3c95808"></a><!-- doxytag: member="msg_parse::ns_rrsets" ref="cd8641aa3b0f96f3f49c5ca2b3c95808" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="structmsg__parse.html#cd8641aa3b0f96f3f49c5ca2b3c95808">msg_parse::ns_rrsets</a> </td> </tr> </table> </div> <div class="memdoc"> <p> count of RRsets per section. <p> <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00374">change_rrsig_rrset()</a>, <a class="el" href="msgparse_8c_source.html#l00270">change_section()</a>, <a class="el" href="msgreply_8c_source.html#l00116">parse_create_repinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00863">parse_packet()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00062">remove_rrset()</a>.</p> </div> </div><p> <a class="anchor" name="c7739cdc64dc2fc2e34348f36fd429e9"></a><!-- doxytag: member="msg_parse::ar_rrsets" ref="c7739cdc64dc2fc2e34348f36fd429e9" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="structmsg__parse.html#c7739cdc64dc2fc2e34348f36fd429e9">msg_parse::ar_rrsets</a> </td> </tr> </table> </div> <div class="memdoc"> <p> count of RRsets per section. <p> <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00374">change_rrsig_rrset()</a>, <a class="el" href="msgparse_8c_source.html#l00270">change_section()</a>, <a class="el" href="msgreply_8c_source.html#l00116">parse_create_repinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00896">parse_extract_edns()</a>, <a class="el" href="msgparse_8c_source.html#l00863">parse_packet()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00062">remove_rrset()</a>.</p> </div> </div><p> <a class="anchor" name="a65e7b32847dc0b431fb8ff1b6fa5a0a"></a><!-- doxytag: member="msg_parse::rrset_count" ref="a65e7b32847dc0b431fb8ff1b6fa5a0a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">size_t <a class="el" href="structmsg__parse.html#a65e7b32847dc0b431fb8ff1b6fa5a0a">msg_parse::rrset_count</a> </td> </tr> </table> </div> <div class="memdoc"> <p> total number of rrsets found. <p> <p>Referenced by <a class="el" href="msgreply_8c_source.html#l00116">parse_create_repinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00896">parse_extract_edns()</a>, <a class="el" href="msgparse_8c_source.html#l00863">parse_packet()</a>, <a class="el" href="iter__scrub_8c_source.html#l00062">remove_rrset()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00230">synth_cname_rrset()</a>.</p> </div> </div><p> <a class="anchor" name="477a89388d195c0442704668bd0aa256"></a><!-- doxytag: member="msg_parse::qtype" ref="477a89388d195c0442704668bd0aa256" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint16_t <a class="el" href="structmsg__parse.html#477a89388d195c0442704668bd0aa256">msg_parse::qtype</a> </td> </tr> </table> </div> <div class="memdoc"> <p> query type, host order. <p> 0 if qdcount=0 <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00718">add_rr_to_rrset()</a>, <a class="el" href="msgparse_8c_source.html#l00374">change_rrsig_rrset()</a>, <a class="el" href="msgreply_8c_source.html#l00061">parse_create_qinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00550">parse_query_section()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00668">scrub_message()</a>.</p> </div> </div><p> <a class="anchor" name="97948aa194d20106a003c96dcf82ac35"></a><!-- doxytag: member="msg_parse::qclass" ref="97948aa194d20106a003c96dcf82ac35" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">uint16_t <a class="el" href="structmsg__parse.html#97948aa194d20106a003c96dcf82ac35">msg_parse::qclass</a> </td> </tr> </table> </div> <div class="memdoc"> <p> query class, host order. <p> 0 if qdcount=0 <p>Referenced by <a class="el" href="msgreply_8c_source.html#l00061">parse_create_qinfo()</a>, <a class="el" href="msgparse_8c_source.html#l00550">parse_query_section()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00668">scrub_message()</a>.</p> </div> </div><p> <a class="anchor" name="dcc05e232447b79d4e15e5e6f2c8736d"></a><!-- doxytag: member="msg_parse::hashtable" ref="dcc05e232447b79d4e15e5e6f2c8736d" args="[PARSE_TABLE_SIZE]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structrrset__parse.html">rrset_parse</a>* <a class="el" href="structmsg__parse.html#dcc05e232447b79d4e15e5e6f2c8736d">msg_parse::hashtable</a>[PARSE_TABLE_SIZE]<code> [read]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> Hash table array used during parsing to lookup rrset types. <p> Based on name, type, class. Same hash value as in rrset cache. <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00374">change_rrsig_rrset()</a>, <a class="el" href="msgparse_8c_source.html#l00255">msgparse_bucket_remove()</a>, <a class="el" href="msgparse_8c_source.html#l00211">msgparse_hashtable_lookup()</a>, and <a class="el" href="msgparse_8c_source.html#l00069">new_rrset()</a>.</p> </div> </div><p> <a class="anchor" name="d982a37590a83b9aae065aec5e5c9cd6"></a><!-- doxytag: member="msg_parse::rrset_first" ref="d982a37590a83b9aae065aec5e5c9cd6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structrrset__parse.html">rrset_parse</a>* <a class="el" href="structmsg__parse.html#d982a37590a83b9aae065aec5e5c9cd6">msg_parse::rrset_first</a><code> [read]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> linked list of rrsets that have been found (in order). <p> <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00270">change_section()</a>, <a class="el" href="msgreply_8c_source.html#l00296">get_rrset_trust()</a>, <a class="el" href="msgparse_8c_source.html#l00069">new_rrset()</a>, <a class="el" href="msgreply_8c_source.html#l00371">parse_copy_decompress()</a>, <a class="el" href="msgparse_8c_source.html#l00896">parse_extract_edns()</a>, <a class="el" href="iter__scrub_8c_source.html#l00062">remove_rrset()</a>, <a class="el" href="iter__scrub_8c_source.html#l00318">scrub_normalize()</a>, <a class="el" href="iter__scrub_8c_source.html#l00565">scrub_sanitize()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00230">synth_cname_rrset()</a>.</p> </div> </div><p> <a class="anchor" name="f4344b7c00f28f4816bfc80068d61493"></a><!-- doxytag: member="msg_parse::rrset_last" ref="f4344b7c00f28f4816bfc80068d61493" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structrrset__parse.html">rrset_parse</a>* <a class="el" href="structmsg__parse.html#f4344b7c00f28f4816bfc80068d61493">msg_parse::rrset_last</a><code> [read]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> last element of rrset list. <p> <p>Referenced by <a class="el" href="msgparse_8c_source.html#l00270">change_section()</a>, <a class="el" href="msgparse_8c_source.html#l00069">new_rrset()</a>, <a class="el" href="msgparse_8c_source.html#l00896">parse_extract_edns()</a>, <a class="el" href="iter__scrub_8c_source.html#l00062">remove_rrset()</a>, and <a class="el" href="iter__scrub_8c_source.html#l00230">synth_cname_rrset()</a>.</p> </div> </div><p> <hr>The documentation for this struct was generated from the following file:<ul> <li>util/data/<a class="el" href="msgparse_8h.html">msgparse.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>