Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 550bbe86d83a7870fdddc73c68e5d2b2 > files > 251

libunbound-devel-1.3.4-1mdv2010.0.i586.rpm

<!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: daemon/stats.h File 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&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;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 class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
  <div class="navpath"><a class="el" href="dir_25e37f0a75013b615a5ba63405adf018.html">daemon</a>
  </div>
</div>
<div class="contents">
<h1>stats.h File Reference</h1>This file describes the data structure used to collect runtime performance numbers.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="timehist_8h.html">util/timehist.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structserver__stats.html">server_stats</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">per <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a> statistics  <a href="structserver__stats.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structstats__info.html">stats_info</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Statistics to send over the control pipe when asked This struct is made to be memcpied, sent in binary.  <a href="structstats__info.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="31264260b10b0a8ce95af9083af02ba5"></a><!-- doxytag: member="stats.h::STATS_QTYPE_NUM" ref="31264260b10b0a8ce95af9083af02ba5" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#31264260b10b0a8ce95af9083af02ba5">STATS_QTYPE_NUM</a>&nbsp;&nbsp;&nbsp;256</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of qtype that is stored for in array <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0ee811d6a8c65c503d4718ab238c1bef"></a><!-- doxytag: member="stats.h::STATS_QCLASS_NUM" ref="0ee811d6a8c65c503d4718ab238c1bef" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#0ee811d6a8c65c503d4718ab238c1bef">STATS_QCLASS_NUM</a>&nbsp;&nbsp;&nbsp;256</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of qclass that is stored for in array <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c709e0dcf37ced5646c03becfd34bff6"></a><!-- doxytag: member="stats.h::STATS_RCODE_NUM" ref="c709e0dcf37ced5646c03becfd34bff6" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#c709e0dcf37ced5646c03becfd34bff6">STATS_RCODE_NUM</a>&nbsp;&nbsp;&nbsp;16</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of rcodes in stats <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b4ce086770b2d6e50f210411c6c9d5fa"></a><!-- doxytag: member="stats.h::STATS_OPCODE_NUM" ref="b4ce086770b2d6e50f210411c6c9d5fa" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#b4ce086770b2d6e50f210411c6c9d5fa">STATS_OPCODE_NUM</a>&nbsp;&nbsp;&nbsp;16</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">number of opcodes in stats <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#a593f670b258da01ea64448d80c40a16">server_stats_init</a> (struct <a class="el" href="structserver__stats.html">server_stats</a> *stats, struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize server stats to 0.  <a href="#a593f670b258da01ea64448d80c40a16"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b59c09e789c046bd83ff7a11dc84a382"></a><!-- doxytag: member="stats.h::server_stats_querymiss" ref="b59c09e789c046bd83ff7a11dc84a382" args="(struct server_stats *stats, struct worker *worker)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#b59c09e789c046bd83ff7a11dc84a382">server_stats_querymiss</a> (struct <a class="el" href="structserver__stats.html">server_stats</a> *stats, struct <a class="el" href="structworker.html">worker</a> *<a class="el" href="structworker.html">worker</a>)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">add query if it missed the cache <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e27c5d47d59b4bf7cea8e6fc2a746728"></a><!-- doxytag: member="stats.h::server_stats_log" ref="e27c5d47d59b4bf7cea8e6fc2a746728" args="(struct server_stats *stats, struct worker *worker, int threadnum)" -->
void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#e27c5d47d59b4bf7cea8e6fc2a746728">server_stats_log</a> (struct <a class="el" href="structserver__stats.html">server_stats</a> *stats, struct <a class="el" href="structworker.html">worker</a> *<a class="el" href="structworker.html">worker</a>, int threadnum)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">display the stats to the log <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#3403b6c181a7828c9e73f252bfbecf4a">server_stats_obtain</a> (struct <a class="el" href="structworker.html">worker</a> *<a class="el" href="structworker.html">worker</a>, struct <a class="el" href="structworker.html">worker</a> *who, struct <a class="el" href="structstats__info.html">stats_info</a> *s, int reset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Obtain the stats info for a given thread.  <a href="#3403b6c181a7828c9e73f252bfbecf4a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#4b44200e739bf63239e5caa1d0df0222">server_stats_compile</a> (struct <a class="el" href="structworker.html">worker</a> *<a class="el" href="structworker.html">worker</a>, struct <a class="el" href="structstats__info.html">stats_info</a> *s, int reset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Compile stats into structure for this thread <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>.  <a href="#4b44200e739bf63239e5caa1d0df0222"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#edc3c5e7f48dddd10f9819bfb43debda">server_stats_reply</a> (struct <a class="el" href="structworker.html">worker</a> *<a class="el" href="structworker.html">worker</a>, int reset)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send stats over comm <a class="el" href="structtube.html" title="A pipe.">tube</a> in reply to query cmd.  <a href="#edc3c5e7f48dddd10f9819bfb43debda"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#324150243d3d1cd2d3ba8e3547c5f29d">server_stats_add</a> (struct <a class="el" href="structstats__info.html">stats_info</a> *total, struct <a class="el" href="structstats__info.html">stats_info</a> *a)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Addup stat blocks.  <a href="#324150243d3d1cd2d3ba8e3547c5f29d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#af843f74968c6fc730fac2f936589fed">server_stats_insquery</a> (struct <a class="el" href="structserver__stats.html">server_stats</a> *stats, struct <a class="el" href="structcomm__point.html">comm_point</a> *c, uint16_t qtype, uint16_t qclass, struct <a class="el" href="structedns__data.html">edns_data</a> *edns, struct <a class="el" href="structcomm__reply.html">comm_reply</a> *repinfo)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add stats for this query.  <a href="#af843f74968c6fc730fac2f936589fed"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="stats_8h.html#863df95971997478a93cb76a6c678cbb">server_stats_insrcode</a> (struct <a class="el" href="structserver__stats.html">server_stats</a> *stats, ldns_buffer *buf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add rcode for this query.  <a href="#863df95971997478a93cb76a6c678cbb"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
This file describes the data structure used to collect runtime performance numbers. 
<p>
These 'statistics' may be of interest to the operator. <hr><h2>Function Documentation</h2>
<a class="anchor" name="a593f670b258da01ea64448d80c40a16"></a><!-- doxytag: member="stats.h::server_stats_init" ref="a593f670b258da01ea64448d80c40a16" args="(struct server_stats *stats, struct config_file *cfg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_init           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structserver__stats.html">server_stats</a> *&nbsp;</td>
          <td class="paramname"> <em>stats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structconfig__file.html">config_file</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize server stats to 0. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stats,:</em>&nbsp;</td><td>what to init (this is alloced by the caller). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cfg,:</em>&nbsp;</td><td>with extended statistics option. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="stats_8h_source.html#l00077">server_stats::extended</a>, and <a class="el" href="config__file_8h_source.html#l00061">config_file::stat_extended</a>.</p>

<p>Referenced by <a class="el" href="worker_8c_source.html#l00967">worker_init()</a>, and <a class="el" href="worker_8c_source.html#l01201">worker_stats_clear()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3403b6c181a7828c9e73f252bfbecf4a"></a><!-- doxytag: member="stats.h::server_stats_obtain" ref="3403b6c181a7828c9e73f252bfbecf4a" args="(struct worker *worker, struct worker *who, struct stats_info *s, int reset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_obtain           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structworker.html">worker</a> *&nbsp;</td>
          <td class="paramname"> <em>worker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structworker.html">worker</a> *&nbsp;</td>
          <td class="paramname"> <em>who</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structstats__info.html">stats_info</a> *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Obtain the stats info for a given thread. 
<p>
Uses pipe to communicate. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>,:</em>&nbsp;</td><td>the <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a> that is executing (the first <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>who,:</em>&nbsp;</td><td>on who to get the statistics info. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s,:</em>&nbsp;</td><td>the stats block to fill in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reset,:</em>&nbsp;</td><td>if stats can be reset. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="worker_8h_source.html#l00087">worker::cmd</a>, <a class="el" href="log_8c_source.html#l00267">fatal_exit()</a>, <a class="el" href="stats_8c_source.html#l00118">server_stats_compile()</a>, <a class="el" href="tube_8c_source.html#l00317">tube_read_msg()</a>, <a class="el" href="log_8h_source.html#l00058">VERB_ALGO</a>, <a class="el" href="ldns-testpkts_8c.html#a557e5b23b2833d7c1ec0415a1bdd2b1">verbose()</a>, <a class="el" href="worker_8h_source.html#l00068">worker_cmd_stats</a>, <a class="el" href="worker_8h_source.html#l00070">worker_cmd_stats_noreset</a>, and <a class="el" href="worker_8c_source.html#l00200">worker_send_cmd()</a>.</p>

<p>Referenced by <a class="el" href="remote_8c_source.html#l00865">do_stats()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4b44200e739bf63239e5caa1d0df0222"></a><!-- doxytag: member="stats.h::server_stats_compile" ref="4b44200e739bf63239e5caa1d0df0222" args="(struct worker *worker, struct stats_info *s, int reset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_compile           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structworker.html">worker</a> *&nbsp;</td>
          <td class="paramname"> <em>worker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structstats__info.html">stats_info</a> *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Compile stats into structure for this thread <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>. 
<p>
Also clears the statistics counters (if that is set by config file). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>,:</em>&nbsp;</td><td>the <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a> to compile stats for, also the executing <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s,:</em>&nbsp;</td><td>stats block. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reset,:</em>&nbsp;</td><td>if true, depending on config stats are reset. if false, statistics are not reset. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="mesh_8h_source.html#l00080">mesh_area::all</a>, <a class="el" href="mesh_8h_source.html#l00113">mesh_area::ans_bogus</a>, <a class="el" href="stats_8h_source.html#l00120">server_stats::ans_bogus</a>, <a class="el" href="mesh_8h_source.html#l00117">mesh_area::ans_nodata</a>, <a class="el" href="mesh_8h_source.html#l00115">mesh_area::ans_rcode</a>, <a class="el" href="stats_8h_source.html#l00114">server_stats::ans_rcode</a>, <a class="el" href="stats_8h_source.html#l00116">server_stats::ans_rcode_nodata</a>, <a class="el" href="mesh_8h_source.html#l00111">mesh_area::ans_secure</a>, <a class="el" href="stats_8h_source.html#l00118">server_stats::ans_secure</a>, <a class="el" href="worker_8h_source.html#l00093">worker::back</a>, <a class="el" href="module_8h_source.html#l00073">module_env::cfg</a>, <a class="el" href="rbtree_8h_source.html#l00081">rbtree_t::count</a>, <a class="el" href="worker_8h_source.html#l00120">worker::env</a>, <a class="el" href="stats_8c_source.html#l00101">get_rrset_bogus()</a>, <a class="el" href="stats_8h_source.html#l00132">server_stats::hist</a>, <a class="el" href="mesh_8h_source.html#l00109">mesh_area::histogram</a>, <a class="el" href="module_8h_source.html#l00192">module_env::mesh</a>, <a class="el" href="stats_8h_source.html#l00150">stats_info::mesh_dropped</a>, <a class="el" href="stats_8h_source.html#l00148">stats_info::mesh_jostled</a>, <a class="el" href="stats_8h_source.html#l00146">stats_info::mesh_num_reply_states</a>, <a class="el" href="stats_8h_source.html#l00144">stats_info::mesh_num_states</a>, <a class="el" href="stats_8h_source.html#l00152">stats_info::mesh_replies_sent</a>, <a class="el" href="stats_8h_source.html#l00154">stats_info::mesh_replies_sum_wait</a>, <a class="el" href="stats_8h_source.html#l00156">stats_info::mesh_time_median</a>, <a class="el" href="timehist_8h_source.html#l00046">NUM_BUCKETS_HIST</a>, <a class="el" href="mesh_8h_source.html#l00087">mesh_area::num_reply_states</a>, <a class="el" href="mesh_8h_source.html#l00105">mesh_area::replies_sent</a>, <a class="el" href="mesh_8h_source.html#l00107">mesh_area::replies_sum_wait</a>, <a class="el" href="stats_8h_source.html#l00122">server_stats::rrset_bogus</a>, <a class="el" href="config__file_8h_source.html#l00059">config_file::stat_cumulative</a>, <a class="el" href="worker_8h_source.html#l00115">worker::stats</a>, <a class="el" href="mesh_8h_source.html#l00103">mesh_area::stats_dropped</a>, <a class="el" href="mesh_8h_source.html#l00101">mesh_area::stats_jostled</a>, <a class="el" href="stats_8h_source.html#l00141">stats_info::svr</a>, <a class="el" href="timehist_8c_source.html#l00223">timehist_export()</a>, <a class="el" href="timehist_8c_source.html#l00193">timehist_quartile()</a>, <a class="el" href="outside__network_8h_source.html#l00082">outside_network::unwanted_replies</a>, <a class="el" href="stats_8h_source.html#l00124">server_stats::unwanted_replies</a>, and <a class="el" href="worker_8c_source.html#l01201">worker_stats_clear()</a>.</p>

<p>Referenced by <a class="el" href="stats_8c_source.html#l00151">server_stats_obtain()</a>, and <a class="el" href="stats_8c_source.html#l00176">server_stats_reply()</a>.</p>

</div>
</div><p>
<a class="anchor" name="edc3c5e7f48dddd10f9819bfb43debda"></a><!-- doxytag: member="stats.h::server_stats_reply" ref="edc3c5e7f48dddd10f9819bfb43debda" args="(struct worker *worker, int reset)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_reply           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structworker.html">worker</a> *&nbsp;</td>
          <td class="paramname"> <em>worker</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>reset</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send stats over comm <a class="el" href="structtube.html" title="A pipe.">tube</a> in reply to query cmd. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em><a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>,:</em>&nbsp;</td><td>this <a class="el" href="structworker.html" title="Structure holding working information for unbound.">worker</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>reset,:</em>&nbsp;</td><td>if true, depending on config stats are reset. if false, statistics are not reset. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="worker_8h_source.html#l00087">worker::cmd</a>, <a class="el" href="worker_8h_source.html#l00083">worker::daemon</a>, <a class="el" href="log_8c_source.html#l00267">fatal_exit()</a>, <a class="el" href="stats_8c_source.html#l00118">server_stats_compile()</a>, <a class="el" href="tube_8c_source.html#l00281">tube_write_msg()</a>, <a class="el" href="log_8h_source.html#l00058">VERB_ALGO</a>, <a class="el" href="ldns-testpkts_8c.html#a557e5b23b2833d7c1ec0415a1bdd2b1">verbose()</a>, and <a class="el" href="daemon_8h_source.html#l00086">daemon::workers</a>.</p>

<p>Referenced by <a class="el" href="worker_8c_source.html#l00326">worker_handle_control_cmd()</a>.</p>

</div>
</div><p>
<a class="anchor" name="324150243d3d1cd2d3ba8e3547c5f29d"></a><!-- doxytag: member="stats.h::server_stats_add" ref="324150243d3d1cd2d3ba8e3547c5f29d" args="(struct stats_info *total, struct stats_info *a)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_add           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structstats__info.html">stats_info</a> *&nbsp;</td>
          <td class="paramname"> <em>total</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structstats__info.html">stats_info</a> *&nbsp;</td>
          <td class="paramname"> <em>a</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Addup stat blocks. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>total,:</em>&nbsp;</td><td>sum of the two entries. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>a,:</em>&nbsp;</td><td>to add to it. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="stats_8h_source.html#l00120">server_stats::ans_bogus</a>, <a class="el" href="stats_8h_source.html#l00114">server_stats::ans_rcode</a>, <a class="el" href="stats_8h_source.html#l00116">server_stats::ans_rcode_nodata</a>, <a class="el" href="stats_8h_source.html#l00118">server_stats::ans_secure</a>, <a class="el" href="stats_8h_source.html#l00077">server_stats::extended</a>, <a class="el" href="stats_8h_source.html#l00132">server_stats::hist</a>, <a class="el" href="stats_8h_source.html#l00074">server_stats::max_query_list_size</a>, <a class="el" href="stats_8h_source.html#l00150">stats_info::mesh_dropped</a>, <a class="el" href="stats_8h_source.html#l00148">stats_info::mesh_jostled</a>, <a class="el" href="stats_8h_source.html#l00146">stats_info::mesh_num_reply_states</a>, <a class="el" href="stats_8h_source.html#l00144">stats_info::mesh_num_states</a>, <a class="el" href="stats_8h_source.html#l00152">stats_info::mesh_replies_sent</a>, <a class="el" href="stats_8h_source.html#l00154">stats_info::mesh_replies_sum_wait</a>, <a class="el" href="stats_8h_source.html#l00156">stats_info::mesh_time_median</a>, <a class="el" href="timehist_8h_source.html#l00046">NUM_BUCKETS_HIST</a>, <a class="el" href="stats_8h_source.html#l00064">server_stats::num_queries</a>, <a class="el" href="stats_8h_source.html#l00066">server_stats::num_queries_missed_cache</a>, <a class="el" href="stats_8h_source.html#l00096">server_stats::qbit_AA</a>, <a class="el" href="stats_8h_source.html#l00106">server_stats::qbit_AD</a>, <a class="el" href="stats_8h_source.html#l00108">server_stats::qbit_CD</a>, <a class="el" href="stats_8h_source.html#l00094">server_stats::qbit_QR</a>, <a class="el" href="stats_8h_source.html#l00102">server_stats::qbit_RA</a>, <a class="el" href="stats_8h_source.html#l00100">server_stats::qbit_RD</a>, <a class="el" href="stats_8h_source.html#l00098">server_stats::qbit_TC</a>, <a class="el" href="stats_8h_source.html#l00104">server_stats::qbit_Z</a>, <a class="el" href="stats_8h_source.html#l00084">server_stats::qclass</a>, <a class="el" href="stats_8h_source.html#l00086">server_stats::qclass_big</a>, <a class="el" href="stats_8h_source.html#l00110">server_stats::qEDNS</a>, <a class="el" href="stats_8h_source.html#l00112">server_stats::qEDNS_DO</a>, <a class="el" href="stats_8h_source.html#l00092">server_stats::qipv6</a>, <a class="el" href="stats_8h_source.html#l00088">server_stats::qopcode</a>, <a class="el" href="stats_8h_source.html#l00090">server_stats::qtcp</a>, <a class="el" href="stats_8h_source.html#l00080">server_stats::qtype</a>, <a class="el" href="stats_8h_source.html#l00082">server_stats::qtype_big</a>, <a class="el" href="stats_8h_source.html#l00122">server_stats::rrset_bogus</a>, <a class="el" href="stats_8h_source.html#l00059">STATS_OPCODE_NUM</a>, <a class="el" href="stats_8h_source.html#l00055">STATS_QCLASS_NUM</a>, <a class="el" href="stats_8h_source.html#l00053">STATS_QTYPE_NUM</a>, <a class="el" href="stats_8h_source.html#l00057">STATS_RCODE_NUM</a>, <a class="el" href="stats_8h_source.html#l00072">server_stats::sum_query_list_size</a>, <a class="el" href="stats_8h_source.html#l00141">stats_info::svr</a>, <a class="el" href="stats_8c_source.html#l00056">timeval_add()</a>, <a class="el" href="stats_8h_source.html#l00126">server_stats::unwanted_queries</a>, and <a class="el" href="stats_8h_source.html#l00124">server_stats::unwanted_replies</a>.</p>

<p>Referenced by <a class="el" href="remote_8c_source.html#l00865">do_stats()</a>.</p>

</div>
</div><p>
<a class="anchor" name="af843f74968c6fc730fac2f936589fed"></a><!-- doxytag: member="stats.h::server_stats_insquery" ref="af843f74968c6fc730fac2f936589fed" args="(struct server_stats *stats, struct comm_point *c, uint16_t qtype, uint16_t qclass, struct edns_data *edns, struct comm_reply *repinfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_insquery           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structserver__stats.html">server_stats</a> *&nbsp;</td>
          <td class="paramname"> <em>stats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structcomm__point.html">comm_point</a> *&nbsp;</td>
          <td class="paramname"> <em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>qtype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>qclass</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structedns__data.html">edns_data</a> *&nbsp;</td>
          <td class="paramname"> <em>edns</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structcomm__reply.html">comm_reply</a> *&nbsp;</td>
          <td class="paramname"> <em>repinfo</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add stats for this query. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stats,:</em>&nbsp;</td><td>the stats </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c,:</em>&nbsp;</td><td>commpoint with type and buffer. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qtype,:</em>&nbsp;</td><td>query type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>qclass,:</em>&nbsp;</td><td>query class </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>edns,:</em>&nbsp;</td><td>edns record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>repinfo,:</em>&nbsp;</td><td>reply info with remote address </td></tr>
  </table>
</dl>

<p>References <a class="el" href="netevent_8h_source.html#l00100">comm_reply::addr</a>, <a class="el" href="net__help_8c_source.html#l00401">addr_is_ip6()</a>, <a class="el" href="netevent_8h_source.html#l00102">comm_reply::addrlen</a>, <a class="el" href="net__help_8h_source.html#l00066">BIT_AA</a>, <a class="el" href="net__help_8h_source.html#l00056">BIT_AD</a>, <a class="el" href="net__help_8h_source.html#l00054">BIT_CD</a>, <a class="el" href="net__help_8h_source.html#l00068">BIT_QR</a>, <a class="el" href="net__help_8h_source.html#l00060">BIT_RA</a>, <a class="el" href="net__help_8h_source.html#l00062">BIT_RD</a>, <a class="el" href="net__help_8h_source.html#l00064">BIT_TC</a>, <a class="el" href="net__help_8h_source.html#l00058">BIT_Z</a>, <a class="el" href="msgparse_8h_source.html#l00210">edns_data::bits</a>, <a class="el" href="netevent_8h_source.html#l00140">comm_point::buffer</a>, <a class="el" href="net__help_8h_source.html#l00083">EDNS_DO</a>, <a class="el" href="msgparse_8h_source.html#l00204">edns_data::edns_present</a>, <a class="el" href="stats_8h_source.html#l00096">server_stats::qbit_AA</a>, <a class="el" href="stats_8h_source.html#l00106">server_stats::qbit_AD</a>, <a class="el" href="stats_8h_source.html#l00108">server_stats::qbit_CD</a>, <a class="el" href="stats_8h_source.html#l00094">server_stats::qbit_QR</a>, <a class="el" href="stats_8h_source.html#l00102">server_stats::qbit_RA</a>, <a class="el" href="stats_8h_source.html#l00100">server_stats::qbit_RD</a>, <a class="el" href="stats_8h_source.html#l00098">server_stats::qbit_TC</a>, <a class="el" href="stats_8h_source.html#l00104">server_stats::qbit_Z</a>, <a class="el" href="stats_8h_source.html#l00084">server_stats::qclass</a>, <a class="el" href="stats_8h_source.html#l00086">server_stats::qclass_big</a>, <a class="el" href="stats_8h_source.html#l00110">server_stats::qEDNS</a>, <a class="el" href="stats_8h_source.html#l00112">server_stats::qEDNS_DO</a>, <a class="el" href="stats_8h_source.html#l00092">server_stats::qipv6</a>, <a class="el" href="stats_8h_source.html#l00088">server_stats::qopcode</a>, <a class="el" href="stats_8h_source.html#l00090">server_stats::qtcp</a>, <a class="el" href="stats_8h_source.html#l00080">server_stats::qtype</a>, <a class="el" href="stats_8h_source.html#l00082">server_stats::qtype_big</a>, <a class="el" href="stats_8h_source.html#l00055">STATS_QCLASS_NUM</a>, <a class="el" href="stats_8h_source.html#l00053">STATS_QTYPE_NUM</a>, and <a class="el" href="structcomm__point.html#e97adb4dd9e0ea2e4b18465bcc8b0162">comm_point::type</a>.</p>

<p>Referenced by <a class="el" href="worker_8c_source.html#l00681">worker_handle_request()</a>.</p>

</div>
</div><p>
<a class="anchor" name="863df95971997478a93cb76a6c678cbb"></a><!-- doxytag: member="stats.h::server_stats_insrcode" ref="863df95971997478a93cb76a6c678cbb" args="(struct server_stats *stats, ldns_buffer *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void server_stats_insrcode           </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structserver__stats.html">server_stats</a> *&nbsp;</td>
          <td class="paramname"> <em>stats</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">ldns_buffer *&nbsp;</td>
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add rcode for this query. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>stats,:</em>&nbsp;</td><td>the stats </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf,:</em>&nbsp;</td><td>buffer with rcode. If buffer is length0: not counted. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="stats_8h_source.html#l00114">server_stats::ans_rcode</a>, <a class="el" href="stats_8h_source.html#l00116">server_stats::ans_rcode_nodata</a>, and <a class="el" href="stats_8h_source.html#l00077">server_stats::extended</a>.</p>

<p>Referenced by <a class="el" href="worker_8c_source.html#l00501">answer_from_cache()</a>, <a class="el" href="worker_8c_source.html#l00416">answer_norec_from_cache()</a>, and <a class="el" href="worker_8c_source.html#l00681">worker_handle_request()</a>.</p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:30 2009 for unbound by&nbsp;
<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>