Sophie

Sophie

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

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: util/log.c 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_4b581c88b01efb1cf178857b56f0f2fb.html">util</a>
  </div>
</div>
<div class="contents">
<h1>log.c File Reference</h1>Implementation of <a class="el" href="log_8h.html" title="This file contains logging functions.">log.h</a>.  
<a href="#_details">More...</a>
<p>
<code>#include &quot;config.h&quot;</code><br>
<code>#include &quot;<a class="el" href="log_8h.html">util/log.h</a>&quot;</code><br>
<code>#include &quot;util/locks.h&quot;</code><br>
<code>#include &lt;time.h&gt;</code><br>
<code>#include &lt;syslog.h&gt;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></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="log_8c.html#1983f1f2141eefcac5230188e2d8159b">log_init</a> (const char *filename, int use_syslog, const char *chrootdir)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">call this to initialize logging services.  <a href="#1983f1f2141eefcac5230188e2d8159b"></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="log_8c.html#e3b0abea3006c8287a9abe4fe856a286">log_file</a> (FILE *f)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set logging to go to the specified file *.  <a href="#e3b0abea3006c8287a9abe4fe856a286"></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="log_8c.html#2db5d733adba66bad8830569b6feac77">log_thread_set</a> (int *num)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Init a thread (will print this number for the thread log entries).  <a href="#2db5d733adba66bad8830569b6feac77"></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="log_8c.html#817257d91fd22feec362ba59f2a1217a">log_ident_set</a> (const char *id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set identity to print, default is 'unbound'.  <a href="#817257d91fd22feec362ba59f2a1217a"></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="log_8c.html#62e44241ca6a18a816da710b77149546">log_set_time</a> (uint32_t *t)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the time value to print in log entries.  <a href="#62e44241ca6a18a816da710b77149546"></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="log_8c.html#913ae4ba85ddc8a8ac3434e82155982d">log_set_time_asc</a> (int use_asc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set if the time value is printed ascii or decimal in log entries.  <a href="#913ae4ba85ddc8a8ac3434e82155982d"></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="log_8c.html#da440e3383e978da43d5d8d9f2cca2a0">log_vmsg</a> (int pri, const char *type, const char *format, va_list args)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">va_list argument version of log_info.  <a href="#da440e3383e978da43d5d8d9f2cca2a0"></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="log_8c.html#de762acc676da9bb7e589a8a1ac43424">log_info</a> (const char *format,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of log_info  <a href="#de762acc676da9bb7e589a8a1ac43424"></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="log_8c.html#55556e25c0ae1430d8bb2e458209253f">log_err</a> (const char *format,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of log_err  <a href="#55556e25c0ae1430d8bb2e458209253f"></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="log_8c.html#187b3e3d9e26ccf7682d96d0924130cb">log_warn</a> (const char *format,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of log_warn  <a href="#187b3e3d9e26ccf7682d96d0924130cb"></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="log_8c.html#743ac665f38d6e136236c5451f5aa06e">fatal_exit</a> (const char *format,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of fatal_exit  <a href="#743ac665f38d6e136236c5451f5aa06e"></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="log_8c.html#41efd87afe8423dcf929a2faf152ffa0">verbose</a> (enum <a class="el" href="log_8h.html#a6e4bbdddab8be2b3694da9631d23979">verbosity_value</a> level, const char *format,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">implementation of verbose  <a href="#41efd87afe8423dcf929a2faf152ffa0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cda2007316267880d3290135dd9dfaa6"></a><!-- doxytag: member="log.c::log_hex_f" ref="cda2007316267880d3290135dd9dfaa6" args="(enum verbosity_value v, const char *msg, void *data, size_t length)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#cda2007316267880d3290135dd9dfaa6">log_hex_f</a> (enum <a class="el" href="log_8h.html#a6e4bbdddab8be2b3694da9631d23979">verbosity_value</a> v, const char *msg, void *data, size_t length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">log hex data <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#6ef02355d271c86e09596bc050d97ad9">log_hex</a> (const char *msg, void *data, size_t length)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Log a hex-string to the log.  <a href="#6ef02355d271c86e09596bc050d97ad9"></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="log_8c.html#7210eedf8fb84d25a03df0502040e1f8">log_buf</a> (enum <a class="el" href="log_8h.html#a6e4bbdddab8be2b3694da9631d23979">verbosity_value</a> level, const char *msg, ldns_buffer *buf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Easy alternative for log_hex, takes a ldns_buffer.  <a href="#7210eedf8fb84d25a03df0502040e1f8"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2606653172a719e3798320e11195d991"></a><!-- doxytag: member="log.c::verbosity" ref="2606653172a719e3798320e11195d991" args="" -->
enum <a class="el" href="log_8h.html#a6e4bbdddab8be2b3694da9631d23979">verbosity_value</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#2606653172a719e3798320e11195d991">verbosity</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The global verbosity setting. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static FILE *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#b25a3625a8efbaa3d81ef27bbb51c9c5">logfile</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the file logged to.  <a href="#b25a3625a8efbaa3d81ef27bbb51c9c5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="96e5565084391912207eac211c7d944e"></a><!-- doxytag: member="log.c::key_created" ref="96e5565084391912207eac211c7d944e" args="" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#96e5565084391912207eac211c7d944e">key_created</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">if key has been created <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="32b8e3ef2210fce86e2441f5a5062657"></a><!-- doxytag: member="log.c::logkey" ref="32b8e3ef2210fce86e2441f5a5062657" args="" -->
static ub_thread_key_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#32b8e3ef2210fce86e2441f5a5062657">logkey</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">pthread key for thread ids in logfile <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2eea6dcd360773d0de55798b70eebb4"></a><!-- doxytag: member="log.c::ident" ref="a2eea6dcd360773d0de55798b70eebb4" args="" -->
static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#a2eea6dcd360773d0de55798b70eebb4">ident</a> = &quot;unbound&quot;</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">the identity of this executable/process <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="44ec027e7e1773c9577b1c3fc7337676"></a><!-- doxytag: member="log.c::logging_to_syslog" ref="44ec027e7e1773c9577b1c3fc7337676" args="" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#44ec027e7e1773c9577b1c3fc7337676">logging_to_syslog</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">are we using syslog(3) to log to <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b17434d0502661ed430fb6198b67c332"></a><!-- doxytag: member="log.c::log_now" ref="b17434d0502661ed430fb6198b67c332" args="" -->
static uint32_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#b17434d0502661ed430fb6198b67c332">log_now</a> = NULL</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">time to print in log, if NULL, use time(2) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b1d30a8fd050e94e0c32196af7de68d4"></a><!-- doxytag: member="log.c::log_time_asc" ref="b1d30a8fd050e94e0c32196af7de68d4" args="" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8c.html#b1d30a8fd050e94e0c32196af7de68d4">log_time_asc</a> = 0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">print time in UTC or in secondsfrom1970 <br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
Implementation of <a class="el" href="log_8h.html" title="This file contains logging functions.">log.h</a>. 
<p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="1983f1f2141eefcac5230188e2d8159b"></a><!-- doxytag: member="log.c::log_init" ref="1983f1f2141eefcac5230188e2d8159b" args="(const char *filename, int use_syslog, const char *chrootdir)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_init           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>use_syslog</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>chrootdir</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
call this to initialize logging services. 
<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>filename,:</em>&nbsp;</td><td>if NULL stderr is used. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>use_syslog,:</em>&nbsp;</td><td>set to true to ignore filename and use syslog(3). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>chrootdir,:</em>&nbsp;</td><td>to which directory we have been chrooted, if any. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00070">ident</a>, <a class="el" href="log_8c_source.html#l00066">key_created</a>, <a class="el" href="log_8c_source.html#l00241">log_err()</a>, <a class="el" href="log_8c_source.html#l00064">logfile</a>, <a class="el" href="log_8c_source.html#l00073">logging_to_syslog</a>, <a class="el" href="log_8c_source.html#l00068">logkey</a>, <a class="el" href="log_8h_source.html#l00056">VERB_QUERY</a>, and <a class="el" href="ldns-testpkts_8c.html#a557e5b23b2833d7c1ec0415a1bdd2b1">verbose()</a>.</p>

<p>Referenced by <a class="el" href="context_8c_source.html#l00054">context_finalize()</a>, <a class="el" href="unbound_8c_source.html#l00595">main()</a>, <a class="el" href="unbound_8c_source.html#l00338">perform_setup()</a>, <a class="el" href="unbound_8c_source.html#l00525">run_daemon()</a>, <a class="el" href="win__svc_8c_source.html#l00243">service_init()</a>, <a class="el" href="win__svc_8c_source.html#l00397">service_start()</a>, and <a class="el" href="libunbound_8c_source.html#l00064">ub_ctx_create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e3b0abea3006c8287a9abe4fe856a286"></a><!-- doxytag: member="log.c::log_file" ref="e3b0abea3006c8287a9abe4fe856a286" args="(FILE *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_file           </td>
          <td>(</td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>f</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set logging to go to the specified file *. 
<p>
This setting does not affect the use_syslog setting. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>f,:</em>&nbsp;</td><td>to that file, or pass NULL to disable logging. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00064">logfile</a>.</p>

<p>Referenced by <a class="el" href="context_8c_source.html#l00054">context_finalize()</a>, and <a class="el" href="libunbound_8c_source.html#l00324">ub_ctx_debugout()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2db5d733adba66bad8830569b6feac77"></a><!-- doxytag: member="log.c::log_thread_set" ref="2db5d733adba66bad8830569b6feac77" args="(int *num)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_thread_set           </td>
          <td>(</td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>num</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Init a thread (will print this number for the thread log entries). 
<p>
Must be called from the thread itself. If not called 0 is printed. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>num,:</em>&nbsp;</td><td>number to print for this thread. Owned by caller, must continue to exist. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00068">logkey</a>.</p>

<p>Referenced by <a class="el" href="daemon_8c_source.html#l00448">daemon_cleanup()</a>, <a class="el" href="asynclook_8c_source.html#l00276">ext_thread()</a>, <a class="el" href="libworker_8c_source.html#l00257">libworker_dobg()</a>, <a class="el" href="unitlruhash_8c_source.html#l00432">test_thr_main()</a>, <a class="el" href="daemon_8c_source.html#l00334">thread_start()</a>, and <a class="el" href="win__svc_8c_source.html#l00465">win_do_cron()</a>.</p>

</div>
</div><p>
<a class="anchor" name="817257d91fd22feec362ba59f2a1217a"></a><!-- doxytag: member="log.c::log_ident_set" ref="817257d91fd22feec362ba59f2a1217a" args="(const char *id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_ident_set           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set identity to print, default is 'unbound'. 
<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>id,:</em>&nbsp;</td><td>string to print. Name of executable. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00070">ident</a>.</p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00576">main()</a>, and <a class="el" href="libunbound_8c_source.html#l00064">ub_ctx_create()</a>.</p>

</div>
</div><p>
<a class="anchor" name="62e44241ca6a18a816da710b77149546"></a><!-- doxytag: member="log.c::log_set_time" ref="62e44241ca6a18a816da710b77149546" args="(uint32_t *t)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_set_time           </td>
          <td>(</td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>t</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the time value to print in log entries. 
<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>t,:</em>&nbsp;</td><td>the point is copied and used to find the time. if NULL, time(2) is used. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00076">log_now</a>.</p>

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

</div>
</div><p>
<a class="anchor" name="913ae4ba85ddc8a8ac3434e82155982d"></a><!-- doxytag: member="log.c::log_set_time_asc" ref="913ae4ba85ddc8a8ac3434e82155982d" args="(int use_asc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_set_time_asc           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>use_asc</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set if the time value is printed ascii or decimal in log entries. 
<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>use_asc,:</em>&nbsp;</td><td>if true, ascii is printed, otherwise decimal. If the conversion fails or you have no time functions, decimal is printed. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00078">log_time_asc</a>.</p>

<p>Referenced by <a class="el" href="config__file_8c_source.html#l00822">config_apply()</a>.</p>

</div>
</div><p>
<a class="anchor" name="da440e3383e978da43d5d8d9f2cca2a0"></a><!-- doxytag: member="log.c::log_vmsg" ref="da440e3383e978da43d5d8d9f2cca2a0" args="(int pri, const char *type, const char *format, va_list args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_vmsg           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>pri</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">va_list&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
va_list argument version of log_info. 
<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>pri,:</em>&nbsp;</td><td>priority type, for example 5 (INFO). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type,:</em>&nbsp;</td><td>string to designate type of message (info, error). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format,:</em>&nbsp;</td><td>the printf style format to print. no newline. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args,:</em>&nbsp;</td><td>arguments for format string. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00070">ident</a>, <a class="el" href="log_8c_source.html#l00076">log_now</a>, <a class="el" href="log_8c_source.html#l00078">log_time_asc</a>, <a class="el" href="log_8c_source.html#l00064">logfile</a>, <a class="el" href="log_8c_source.html#l00073">logging_to_syslog</a>, <a class="el" href="log_8c_source.html#l00068">logkey</a>, <a class="el" href="win__svc_8h_source.html#l00061">MSG_GENERIC_ERR</a>, <a class="el" href="win__svc_8h_source.html#l00057">MSG_GENERIC_INFO</a>, <a class="el" href="win__svc_8h_source.html#l00055">MSG_GENERIC_SUCCESS</a>, <a class="el" href="win__svc_8h_source.html#l00059">MSG_GENERIC_WARN</a>, and <a class="el" href="win__svc_8h_source.html#l00052">SERVICE_NAME</a>.</p>

<p>Referenced by <a class="el" href="log_8c_source.html#l00267">fatal_exit()</a>, <a class="el" href="log_8c_source.html#l00241">log_err()</a>, <a class="el" href="log_8c_source.html#l00228">log_info()</a>, <a class="el" href="log_8c_source.html#l00254">log_warn()</a>, and <a class="el" href="log_8c_source.html#l00282">verbose()</a>.</p>

</div>
</div><p>
<a class="anchor" name="de762acc676da9bb7e589a8a1ac43424"></a><!-- doxytag: member="log.c::log_info" ref="de762acc676da9bb7e589a8a1ac43424" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_info           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
implementation of log_info 
<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>format,:</em>&nbsp;</td><td>format string printf-style. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00161">log_vmsg()</a>.</p>

<p>Referenced by <a class="el" href="alloc_8c_source.html#l00274">alloc_stats()</a>, <a class="el" href="fake__event_8c_source.html#l00319">answer_check_it()</a>, <a class="el" href="fake__event_8c_source.html#l00711">comm_point_drop_reply()</a>, <a class="el" href="fake__event_8c_source.html#l00684">comm_point_send_reply()</a>, <a class="el" href="netevent_8c_source.html#l00634">comm_point_tcp_accept_callback()</a>, <a class="el" href="daemon_8c_source.html#l00397">daemon_fork()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00226">delegpt_log()</a>, <a class="el" href="fake__event_8c_source.html#l00457">do_moment_and_advance()</a>, <a class="el" href="fake__event_8c_source.html#l00361">fake_front_query()</a>, <a class="el" href="pythonmod__utils_8c_source.html#l00071">invalidateQueryInCache()</a>, <a class="el" href="cachedump_8c_source.html#l00383">load_rr()</a>, <a class="el" href="localzone_8c_source.html#l00942">local_zones_print()</a>, <a class="el" href="msgreply_8c_source.html#l00755">log_dns_msg()</a>, <a class="el" href="net__help_8c_source.html#l00265">log_nametypeclass()</a>, <a class="el" href="fake__event_8c_source.html#l00094">log_pkt()</a>, <a class="el" href="lruhash_8c_source.html#l00458">lruhash_status()</a>, <a class="el" href="testbound_8c_source.html#l00210">main()</a>, <a class="el" href="mesh_8c_source.html#l00943">mesh_stats()</a>, <a class="el" href="fake__event_8c_source.html#l00861">outnet_serviced_query()</a>, <a class="el" href="fake__event_8c_source.html#l00942">outnet_serviced_query_stop()</a>, <a class="el" href="netevent_8c_source.html#l00303">p_ancil()</a>, <a class="el" href="fake__event_8c_source.html#l00184">pending_find_match()</a>, <a class="el" href="fake__event_8c_source.html#l00215">pending_matches_range()</a>, <a class="el" href="fake__event_8c_source.html#l00810">pending_tcp_query()</a>, <a class="el" href="fake__event_8c_source.html#l00758">pending_udp_query()</a>, <a class="el" href="regional_8c_source.html#l00201">regional_log_stats()</a>, <a class="el" href="replay_8c_source.html#l00299">replay_scenario_read()</a>, <a class="el" href="fake__event_8c_source.html#l00515">run_scenario()</a>, <a class="el" href="stats_8c_source.html#l00082">server_stats_log()</a>, <a class="el" href="testbound_8c_source.html#l00175">setup_playback()</a>, <a class="el" href="val__sigcrypt_8c_source.html#l01022">sigdate_error()</a>, <a class="el" href="slabhash_8c_source.html#l00133">slabhash_status()</a>, <a class="el" href="unitmsgparse_8c_source.html#l00169">test_buffers()</a>, <a class="el" href="unitlruhash_8c_source.html#l00360">test_long_table()</a>, <a class="el" href="unitlruhash_8c_source.html#l00258">testlookup()</a>, <a class="el" href="unitlruhash_8c_source.html#l00338">testlookup_unlim()</a>, <a class="el" href="fake__event_8c_source.html#l00429">time_passes()</a>, <a class="el" href="timehist_8c_source.html#l00159">timehist_log()</a>, <a class="el" href="worker_8c_source.html#l00326">worker_handle_control_cmd()</a>, and <a class="el" href="worker_8c_source.html#l00131">worker_mem_report()</a>.</p>

</div>
</div><p>
<a class="anchor" name="55556e25c0ae1430d8bb2e458209253f"></a><!-- doxytag: member="log.c::log_err" ref="55556e25c0ae1430d8bb2e458209253f" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_err           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
implementation of log_err 
<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>format,:</em>&nbsp;</td><td>format string printf-style. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00161">log_vmsg()</a>.</p>

<p>Referenced by <a class="el" href="remote_8c_source.html#l00339">accept_open()</a>, <a class="el" href="acl__list_8c_source.html#l00093">acl_list_str_cfg()</a>, <a class="el" href="libworker_8c_source.html#l00540">add_bg_result()</a>, <a class="el" href="remote_8c_source.html#l00246">add_open()</a>, <a class="el" href="iter__hints_8c_source.html#l00077">ah()</a>, <a class="el" href="val__anchor_8c_source.html#l00294">anchor_insert_insecure()</a>, <a class="el" href="val__anchor_8c_source.html#l00651">anchor_read_bind_file()</a>, <a class="el" href="val__anchor_8c_source.html#l00702">anchor_read_bind_file_wild()</a>, <a class="el" href="val__anchor_8c_source.html#l00339">anchor_read_file()</a>, <a class="el" href="val__anchor_8c_source.html#l00214">anchor_store_new_key()</a>, <a class="el" href="val__anchor_8c_source.html#l00259">anchor_store_new_rr()</a>, <a class="el" href="val__anchor_8c_source.html#l00309">anchor_store_str()</a>, <a class="el" href="val__anchor_8c_source.html#l00928">anchors_apply_cfg()</a>, <a class="el" href="val__anchor_8c_source.html#l00886">anchors_assemble_rrsets()</a>, <a class="el" href="worker_8c_source.html#l00639">answer_chaos()</a>, <a class="el" href="config__file_8c_source.html#l00586">cfg_mark_ports()</a>, <a class="el" href="config__file_8c_source.html#l00957">cfg_parse_local_zone()</a>, <a class="el" href="config__file_8c_source.html#l00778">cfg_parse_memsize()</a>, <a class="el" href="config__file_8c_source.html#l00999">cfg_ptr_reverse()</a>, <a class="el" href="lock__verify_8c_source.html#l00347">check_order_lock()</a>, <a class="el" href="unitneg_8c_source.html#l00425">check_zone_invariants()</a>, <a class="el" href="unbound_8c_source.html#l00125">checkrlimits()</a>, <a class="el" href="netevent_8c_source.html#l00225">comm_base_exit()</a>, <a class="el" href="netevent_8c_source.html#l00129">comm_base_now()</a>, <a class="el" href="netevent_8c_source.html#l01406">comm_point_close()</a>, <a class="el" href="netevent_8c_source.html#l01305">comm_point_create_local()</a>, <a class="el" href="netevent_8c_source.html#l01357">comm_point_create_raw()</a>, <a class="el" href="netevent_8c_source.html#l01189">comm_point_create_tcp()</a>, <a class="el" href="netevent_8c_source.html#l01127">comm_point_create_tcp_handler()</a>, <a class="el" href="netevent_8c_source.html#l01253">comm_point_create_tcp_out()</a>, <a class="el" href="netevent_8c_source.html#l01028">comm_point_create_udp()</a>, <a class="el" href="netevent_8c_source.html#l01077">comm_point_create_udp_ancil()</a>, <a class="el" href="netevent_8c_source.html#l01536">comm_point_listen_for_rw()</a>, <a class="el" href="netevent_8c_source.html#l00996">comm_point_local_handle_callback()</a>, <a class="el" href="netevent_8c_source.html#l00594">comm_point_perform_accept()</a>, <a class="el" href="fake__event_8c_source.html#l00684">comm_point_send_reply()</a>, <a class="el" href="netevent_8c_source.html#l00239">comm_point_send_udp_msg()</a>, <a class="el" href="netevent_8c_source.html#l00351">comm_point_send_udp_msg_if()</a>, <a class="el" href="netevent_8c_source.html#l01491">comm_point_start_listening()</a>, <a class="el" href="netevent_8c_source.html#l01482">comm_point_stop_listening()</a>, <a class="el" href="netevent_8c_source.html#l00953">comm_point_tcp_handle_callback()</a>, <a class="el" href="netevent_8c_source.html#l00721">comm_point_tcp_handle_read()</a>, <a class="el" href="netevent_8c_source.html#l00819">comm_point_tcp_handle_write()</a>, <a class="el" href="netevent_8c_source.html#l00437">comm_point_udp_ancil_callback()</a>, <a class="el" href="netevent_8c_source.html#l00532">comm_point_udp_callback()</a>, <a class="el" href="netevent_8c_source.html#l01684">comm_signal_bind()</a>, <a class="el" href="netevent_8c_source.html#l01656">comm_signal_create()</a>, <a class="el" href="netevent_8c_source.html#l01569">comm_timer_create()</a>, <a class="el" href="netevent_8c_source.html#l01606">comm_timer_set()</a>, <a class="el" href="config__file_8c_source.html#l00446">config_read()</a>, <a class="el" href="unbound-control_8c_source.html#l00136">contact_server()</a>, <a class="el" href="listen__dnsport_8c_source.html#l00229">create_tcp_accept_sock()</a>, <a class="el" href="listen__dnsport_8c_source.html#l00091">create_udp_sock()</a>, <a class="el" href="pythonmod__utils_8c_source.html#l00107">createResponse()</a>, <a class="el" href="daemon_8c_source.html#l00475">daemon_delete()</a>, <a class="el" href="daemon_8c_source.html#l00147">daemon_init()</a>, <a class="el" href="remote_8c_source.html#l00139">daemon_remote_create()</a>, <a class="el" href="remote_8c_source.html#l01561">daemon_remote_exec()</a>, <a class="el" href="remote_8c_source.html#l00358">daemon_remote_open_accept()</a>, <a class="el" href="dname_8c_source.html#l00307">dname_pkt_copy()</a>, <a class="el" href="iter__utils_8c_source.html#l00350">dns_alloc_msg()</a>, <a class="el" href="dns_8c_source.html#l00347">dns_cache_find_delegation()</a>, <a class="el" href="dns_8c_source.html#l00073">dns_cache_store_msg()</a>, <a class="el" href="val__sigcrypt_8c_source.html#l01373">dnskey_verify_rrset_sig()</a>, <a class="el" href="fake__event_8c_source.html#l00457">do_moment_and_advance()</a>, <a class="el" href="delayer_8c_source.html#l00382">do_proxy()</a>, <a class="el" href="iter__donotq_8c_source.html#l00092">donotq_str_cfg()</a>, <a class="el" href="unitverify_8c_source.html#l00064">entry_to_buf()</a>, <a class="el" href="iterator_8c_source.html#l00241">error_response_cache()</a>, <a class="el" href="net__help_8c_source.html#l00107">fd_set_block()</a>, <a class="el" href="net__help_8c_source.html#l00083">fd_set_nonblock()</a>, <a class="el" href="fake__event_8c_source.html#l00256">fill_buffer_with_reply()</a>, <a class="el" href="validator_8c_source.html#l00062">fill_nsec3_iter()</a>, <a class="el" href="val__nsec3_8c_source.html#l00826">find_covering_nsec3()</a>, <a class="el" href="val__nsec3_8c_source.html#l00733">find_matching_nsec3()</a>, <a class="el" href="iter__fwd_8c_source.html#l00093">forwards_insert_data()</a>, <a class="el" href="iterator_8c_source.html#l00739">generate_ns_check()</a>, <a class="el" href="validator_8c_source.html#l00328">generate_request()</a>, <a class="el" href="iterator_8c_source.html#l00465">generate_sub_request()</a>, <a class="el" href="localzone_8c_source.html#l00225">get_rr_content()</a>, <a class="el" href="localzone_8c_source.html#l00264">get_rr_nameclass()</a>, <a class="el" href="libworker_8c_source.html#l00604">handle_newq()</a>, <a class="el" href="win__svc_8c_source.html#l00104">hdlr()</a>, <a class="el" href="iter__hints_8c_source.html#l00144">hints_insert()</a>, <a class="el" href="infra_8c_source.html#l00348">infra_set_lame()</a>, <a class="el" href="localzone_8c_source.html#l00356">insert_rr()</a>, <a class="el" href="iter__utils_8c_source.html#l00099">iter_apply_cfg()</a>, <a class="el" href="iterator_8c_source.html#l00066">iter_init()</a>, <a class="el" href="iterator_8c_source.html#l02108">iter_operate()</a>, <a class="el" href="val__kcache_8c_source.html#l00049">key_cache_create()</a>, <a class="el" href="libworker_8c_source.html#l00218">libworker_do_cmd()</a>, <a class="el" href="libworker_8c_source.html#l00257">libworker_dobg()</a>, <a class="el" href="libworker_8c_source.html#l00411">libworker_enter_result()</a>, <a class="el" href="listen__dnsport_8c_source.html#l00534">listen_create()</a>, <a class="el" href="localzone_8c_source.html#l01186">local_zones_add_zone()</a>, <a class="el" href="remote_8c_source.html#l00090">log_crypto_err()</a>, <a class="el" href="val__sigcrypt_8c_source.html#l01147">log_crypto_error()</a>, <a class="el" href="log_8c_source.html#l00081">log_init()</a>, <a class="el" href="localzone_8c_source.html#l00608">lz_enter_defaults()</a>, <a class="el" href="localzone_8c_source.html#l00441">lz_enter_rr_into_zone()</a>, <a class="el" href="localzone_8c_source.html#l00497">lz_enter_rr_str()</a>, <a class="el" href="localzone_8c_source.html#l00199">lz_enter_zone()</a>, <a class="el" href="localzone_8c_source.html#l00174">lz_enter_zone_dname()</a>, <a class="el" href="localzone_8c_source.html#l00541">lz_exists()</a>, <a class="el" href="localzone_8c_source.html#l00405">lz_find_create_node()</a>, <a class="el" href="localzone_8c_source.html#l00740">lz_setup_implicit()</a>, <a class="el" href="replay_8c_source.html#l00277">make_scenario()</a>, <a class="el" href="listen__dnsport_8c_source.html#l00315">make_sock()</a>, <a class="el" href="iter__fwd_8c_source.html#l00267">make_stub_holes()</a>, <a class="el" href="mesh_8c_source.html#l00548">mesh_attach_sub()</a>, <a class="el" href="mesh_8c_source.html#l00843">mesh_continue()</a>, <a class="el" href="mesh_8c_source.html#l00156">mesh_create()</a>, <a class="el" href="mesh_8c_source.html#l00268">mesh_new_client()</a>, <a class="el" href="mesh_8c_source.html#l00583">mesh_state_attachment()</a>, <a class="el" href="modstack_8c_source.html#l00081">modstack_config()</a>, <a class="el" href="modstack_8c_source.html#l00165">modstack_setup()</a>, <a class="el" href="val__neg_8c_source.html#l00739">neg_insert_data()</a>, <a class="el" href="net__help_8c_source.html#l00231">netblockstrtoaddr()</a>, <a class="el" href="localzone_8c_source.html#l00319">new_local_rrset()</a>, <a class="el" href="iterator_8c_source.html#l00140">next_state()</a>, <a class="el" href="val__nsec3_8c_source.html#l00614">nsec3_calc_b32()</a>, <a class="el" href="val__nsec3_8c_source.html#l00567">nsec3_calc_hash()</a>, <a class="el" href="val__nsec3_8c_source.html#l00992">nsec3_ce_wildcard()</a>, <a class="el" href="val__nsec3_8c_source.html#l00527">nsec3_get_hashed()</a>, <a class="el" href="fake__event_8c_source.html#l00861">outnet_serviced_query()</a>, <a class="el" href="outside__network_8c_source.html#l00132">outnet_tcp_take_into_use()</a>, <a class="el" href="outside__network_8c_source.html#l00468">outside_network_create()</a>, <a class="el" href="localzone_8c_source.html#l00124">parse_dname()</a>, <a class="el" href="fake__event_8c_source.html#l00810">pending_tcp_query()</a>, <a class="el" href="fake__event_8c_source.html#l00758">pending_udp_query()</a>, <a class="el" href="unbound_8c_source.html#l00338">perform_setup()</a>, <a class="el" href="perf_8c_source.html#l00299">perfreply()</a>, <a class="el" href="perf_8c_source.html#l00353">perfselect()</a>, <a class="el" href="perf_8c_source.html#l00272">perfsend()</a>, <a class="el" href="iterator_8c_source.html#l00541">prime_root()</a>, <a class="el" href="iterator_8c_source.html#l00600">prime_stub()</a>, <a class="el" href="iterator_8c_source.html#l01696">prime_supers()</a>, <a class="el" href="validator_8c_source.html#l00362">prime_trust_anchor()</a>, <a class="el" href="validator_8c_source.html#l02045">primeResponseToKE()</a>, <a class="el" href="remote_8c_source.html#l00713">print_hist()</a>, <a class="el" href="libunbound_8c_source.html#l00366">process_answer_detail()</a>, <a class="el" href="val__anchor_8c_source.html#l00553">process_bind_contents()</a>, <a class="el" href="validator_8c_source.html#l02453">process_dlv_response()</a>, <a class="el" href="validator_8c_source.html#l02358">process_dnskey_response()</a>, <a class="el" href="validator_8c_source.html#l02300">process_ds_response()</a>, <a class="el" href="iterator_8c_source.html#l02011">process_response()</a>, <a class="el" href="validator_8c_source.html#l01837">processDLVLookup()</a>, <a class="el" href="validator_8c_source.html#l01319">processFindKey()</a>, <a class="el" href="iterator_8c_source.html#l01866">processFinished()</a>, <a class="el" href="iterator_8c_source.html#l00827">processInitRequest()</a>, <a class="el" href="iterator_8c_source.html#l01454">processQueryResponse()</a>, <a class="el" href="iterator_8c_source.html#l01798">processTargetResponse()</a>, <a class="el" href="validator_8c_source.html#l01442">processValidate()</a>, <a class="el" href="pythonmod_8c_source.html#l00223">pythonmod_deinit()</a>, <a class="el" href="pythonmod_8c_source.html#l00253">pythonmod_inform_super()</a>, <a class="el" href="pythonmod_8c_source.html#l00105">pythonmod_init()</a>, <a class="el" href="pythonmod_8c_source.html#l00288">pythonmod_operate()</a>, <a class="el" href="msgreply_8c_source.html#l00516">query_info_allocqname()</a>, <a class="el" href="iter__priv_8c_source.html#l00076">read_addrs()</a>, <a class="el" href="iter__utils_8c_source.html#l00080">read_fetch_policy()</a>, <a class="el" href="iter__fwd_8c_source.html#l00225">read_forwards()</a>, <a class="el" href="iter__fwd_8c_source.html#l00202">read_fwds_addr()</a>, <a class="el" href="iter__fwd_8c_source.html#l00177">read_fwds_host()</a>, <a class="el" href="iter__fwd_8c_source.html#l00153">read_fwds_name()</a>, <a class="el" href="iter__priv_8c_source.html#l00107">read_names()</a>, <a class="el" href="iter__hints_8c_source.html#l00260">read_root_hints()</a>, <a class="el" href="iter__hints_8c_source.html#l00238">read_stubs()</a>, <a class="el" href="iter__hints_8c_source.html#l00215">read_stubs_addr()</a>, <a class="el" href="iter__hints_8c_source.html#l00190">read_stubs_host()</a>, <a class="el" href="iter__hints_8c_source.html#l00166">read_stubs_name()</a>, <a class="el" href="unbound_8c_source.html#l00217">readpid()</a>, <a class="el" href="daemon_8c_source.html#l00071">record_sigh()</a>, <a class="el" href="remote_8c_source.html#l00372">remote_accept_callback()</a>, <a class="el" href="remote_8c_source.html#l01613">remote_control_callback()</a>, <a class="el" href="replay_8c_source.html#l00188">replay_moment_read()</a>, <a class="el" href="replay_8c_source.html#l00114">replay_range_read()</a>, <a class="el" href="msgencode_8c_source.html#l00714">reply_info_answer_encode()</a>, <a class="el" href="val__sigcrypt_8c_source.html#l00968">rrset_canonical()</a>, <a class="el" href="fake__event_8c_source.html#l00515">run_scenario()</a>, <a class="el" href="iter__scrub_8c_source.html#l00318">scrub_normalize()</a>, <a class="el" href="outside__network_8c_source.html#l00769">select_id()</a>, <a class="el" href="outside__network_8c_source.html#l00795">select_ifport()</a>, <a class="el" href="delayer_8c_source.html#l00985">service()</a>, <a class="el" href="win__svc_8c_source.html#l00243">service_init()</a>, <a class="el" href="win__svc_8c_source.html#l00331">service_main()</a>, <a class="el" href="delayer_8c_source.html#l00348">service_send()</a>, <a class="el" href="delayer_8c_source.html#l00559">service_tcp_listen()</a>, <a class="el" href="outside__network_8c_source.html#l01308">serviced_callbacks()</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>, <a class="el" href="listen__dnsport_8c_source.html#l00382">set_recvpktinfo()</a>, <a class="el" href="daemon_8c_source.html#l00109">signal_handling_record()</a>, <a class="el" href="val__anchor_8c_source.html#l00523">skip_to_special()</a>, <a class="el" href="remote_8c_source.html#l00515">ssl_read_line()</a>, <a class="el" href="lruhash_8c_source.html#l00230">table_grow()</a>, <a class="el" href="delayer_8c_source.html#l00634">tcp_relay_read()</a>, <a class="el" href="delayer_8c_source.html#l00687">tcp_relay_write()</a>, <a class="el" href="tube_8c_source.html#l00051">tube_create()</a>, <a class="el" href="tube_8c_source.html#l00142">tube_handle_listen()</a>, <a class="el" href="tube_8c_source.html#l00218">tube_handle_write()</a>, <a class="el" href="tube_8c_source.html#l00434">tube_queue_item()</a>, <a class="el" href="tube_8c_source.html#l00317">tube_read_msg()</a>, <a class="el" href="tube_8c_source.html#l00407">tube_setup_bg_listen()</a>, <a class="el" href="tube_8c_source.html#l00422">tube_setup_bg_write()</a>, <a class="el" href="tube_8c_source.html#l00281">tube_write_msg()</a>, <a class="el" href="random_8c_source.html#l00117">ub_arc4random_stir()</a>, <a class="el" href="libunbound_8c_source.html#l00064">ub_ctx_create()</a>, <a class="el" href="random_8c_source.html#l00154">ub_initstate()</a>, <a class="el" href="random_8c_source.html#l00092">ub_systemseed()</a>, <a class="el" href="validator_8c_source.html#l00101">val_apply_cfg()</a>, <a class="el" href="validator_8c_source.html#l01605">val_dlv_init()</a>, <a class="el" href="validator_8c_source.html#l02539">val_inform_super()</a>, <a class="el" href="validator_8c_source.html#l00150">val_init()</a>, <a class="el" href="val__neg_8c_source.html#l01041">val_neg_addreferral()</a>, <a class="el" href="val__neg_8c_source.html#l00833">val_neg_addreply()</a>, <a class="el" href="val__neg_8c_source.html#l00078">val_neg_create()</a>, <a class="el" href="validator_8c_source.html#l01970">val_operate()</a>, <a class="el" href="validator_8c_source.html#l00827">validate_any_response()</a>, <a class="el" href="val__sigcrypt_8c_source.html#l01305">verify_canonrrset()</a>, <a class="el" href="win__svc_8c_source.html#l00444">waitforit()</a>, <a class="el" href="win__svc_8c_source.html#l00465">win_do_cron()</a>, <a class="el" href="worker_8c_source.html#l00326">worker_handle_control_cmd()</a>, <a class="el" href="worker_8c_source.html#l00967">worker_init()</a>, <a class="el" href="worker_8c_source.html#l00200">worker_send_cmd()</a>, <a class="el" href="worker_8c_source.html#l00881">worker_sighandler()</a>, and <a class="el" href="unbound_8c_source.html#l00261">writepid()</a>.</p>

</div>
</div><p>
<a class="anchor" name="187b3e3d9e26ccf7682d96d0924130cb"></a><!-- doxytag: member="log.c::log_warn" ref="187b3e3d9e26ccf7682d96d0924130cb" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_warn           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
implementation of log_warn 
<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>format,:</em>&nbsp;</td><td>format string printf-style. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00161">log_vmsg()</a>.</p>

<p>Referenced by <a class="el" href="alloc_8c_source.html#l00167">alloc_get_id()</a>, <a class="el" href="val__anchor_8c_source.html#l00886">anchors_assemble_rrsets()</a>, <a class="el" href="unbound_8c_source.html#l00284">checkoldpid()</a>, <a class="el" href="unbound_8c_source.html#l00125">checkrlimits()</a>, <a class="el" href="netevent_8c_source.html#l00634">comm_point_tcp_accept_callback()</a>, <a class="el" href="iter__delegpt_8c_source.html#l00413">delegpt_add_rrset()</a>, <a class="el" href="validator_8c_source.html#l02151">ds_response_to_ke()</a>, <a class="el" href="unbound-control_8c_source.html#l00281">go()</a>, <a class="el" href="iterator_8c_source.html#l01951">iter_handle()</a>, <a class="el" href="listen__dnsport_8c_source.html#l00633">listening_ports_open()</a>, <a class="el" href="localzone_8c_source.html#l00174">lz_enter_zone_dname()</a>, <a class="el" href="unbound-control_8c_source.html#l00321">main()</a>, <a class="el" href="outside__network_8c_source.html#l00303">outnet_udp_cb()</a>, <a class="el" href="unbound_8c_source.html#l00338">perform_setup()</a>, <a class="el" href="listen__dnsport_8c_source.html#l00448">ports_create_if()</a>, <a class="el" href="iterator_8c_source.html#l01454">processQueryResponse()</a>, <a class="el" href="iter__hints_8c_source.html#l00260">read_root_hints()</a>, <a class="el" href="remote_8c_source.html#l00372">remote_accept_callback()</a>, <a class="el" href="delayer_8c_source.html#l00217">ring_add()</a>, <a class="el" href="rrset_8c_source.html#l00288">rrset_array_unlock_touch()</a>, <a class="el" href="unbound_8c_source.html#l00525">run_daemon()</a>, <a class="el" href="win__svc_8c_source.html#l00243">service_init()</a>, and <a class="el" href="validator_8c_source.html#l01937">val_handle()</a>.</p>

</div>
</div><p>
<a class="anchor" name="743ac665f38d6e136236c5451f5aa06e"></a><!-- doxytag: member="log.c::fatal_exit" ref="743ac665f38d6e136236c5451f5aa06e" args="(const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void fatal_exit           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
implementation of fatal_exit 
<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>format,:</em>&nbsp;</td><td>format string printf-style. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00161">log_vmsg()</a>.</p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00301">aclchecks()</a>, <a class="el" href="testbound_8c_source.html#l00085">add_opts()</a>, <a class="el" href="alloc_8c_source.html#l00186">alloc_special_obtain()</a>, <a class="el" href="fake__event_8c_source.html#l00291">answer_callback_from_entry()</a>, <a class="el" href="fake__event_8c_source.html#l00319">answer_check_it()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00358">basedir()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00371">check_chroot_string()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00536">check_fwd()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00214">check_mod()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00547">checkconf()</a>, <a class="el" href="unbound_8c_source.html#l00125">checkrlimits()</a>, <a class="el" href="netevent_8c_source.html#l00215">comm_base_dispatch()</a>, <a class="el" href="fake__event_8c_source.html#l00651">comm_base_exit()</a>, <a class="el" href="fake__event_8c_source.html#l00684">comm_point_send_reply()</a>, <a class="el" href="netevent_8c_source.html#l00437">comm_point_udp_ancil_callback()</a>, <a class="el" href="unbound-control_8c_source.html#l00136">contact_server()</a>, <a class="el" href="daemon_8c_source.html#l00512">daemon_apply_cfg()</a>, <a class="el" href="daemon_8c_source.html#l00276">daemon_create_workers()</a>, <a class="el" href="daemon_8c_source.html#l00397">daemon_fork()</a>, <a class="el" href="daemon_8c_source.html#l00244">daemon_get_shufport()</a>, <a class="el" href="daemon_8c_source.html#l00147">daemon_init()</a>, <a class="el" href="daemon_8c_source.html#l00225">daemon_setup_modules()</a>, <a class="el" href="unbound_8c_source.html#l00301">detach()</a>, <a class="el" href="unitdname_8c_source.html#l00048">dname_to_buf()</a>, <a class="el" href="fake__event_8c_source.html#l00457">do_moment_and_advance()</a>, <a class="el" href="unitverify_8c_source.html#l00215">dstest_entry()</a>, <a class="el" href="unitverify_8c_source.html#l00302">dstest_file()</a>, <a class="el" href="unitverify_8c_source.html#l00064">entry_to_buf()</a>, <a class="el" href="fake__event_8c_source.html#l00394">fake_pending_callback()</a>, <a class="el" href="iter__utils_8c_source.html#l00066">fetch_fill()</a>, <a class="el" href="fake__event_8c_source.html#l00256">fill_buffer_with_reply()</a>, <a class="el" href="delayer_8c_source.html#l00434">find_create_proxy()</a>, <a class="el" href="memstats_8c_source.html#l00168">get_file_size()</a>, <a class="el" href="unbound-control_8c_source.html#l00281">go()</a>, <a class="el" href="readhex_8c_source.html#l00062">hex_to_buf()</a>, <a class="el" href="lock__verify_8c_source.html#l00210">insert_lock()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00267">interfacechecks()</a>, <a class="el" href="libworker_8c_source.html#l00303">libworker_bg()</a>, <a class="el" href="localzone_8c_source.html#l00846">local_zones_apply_cfg()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00233">localzonechecks()</a>, <a class="el" href="localzone_8c_source.html#l00497">lz_enter_rr_str()</a>, <a class="el" href="unbound_8c_source.html#l00595">main()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00425">morechecks()</a>, <a class="el" href="unitlruhash_8c_source.html#l00071">newdata()</a>, <a class="el" href="unitlruhash_8c_source.html#l00061">newkey()</a>, <a class="el" href="unitverify_8c_source.html#l00429">nsec3_hash_test()</a>, <a class="el" href="fake__event_8c_source.html#l00861">outnet_serviced_query()</a>, <a class="el" href="fake__event_8c_source.html#l00810">pending_tcp_query()</a>, <a class="el" href="fake__event_8c_source.html#l00758">pending_udp_query()</a>, <a class="el" href="unitmsgparse_8c_source.html#l00252">perf_encode()</a>, <a class="el" href="perf_8c_source.html#l00407">perfendstats()</a>, <a class="el" href="unbound_8c_source.html#l00338">perform_setup()</a>, <a class="el" href="perf_8c_source.html#l00353">perfselect()</a>, <a class="el" href="perf_8c_source.html#l00198">perfsetup()</a>, <a class="el" href="alloc_8c_source.html#l00067">prealloc()</a>, <a class="el" href="alloc_8c_source.html#l00083">prealloc_blocks()</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>, <a class="el" href="signit_8c_source.html#l00200">process_nsec3()</a>, <a class="el" href="perf_8c_source.html#l00525">qlist_add_line()</a>, <a class="el" href="perf_8c_source.html#l00505">qlist_grow_capacity()</a>, <a class="el" href="memstats_8c_source.html#l00143">read_calloc_stat()</a>, <a class="el" href="lock__verify_8c_source.html#l00181">read_create()</a>, <a class="el" href="lock__verify_8c_source.html#l00114">read_header()</a>, <a class="el" href="signit_8c_source.html#l00089">read_keys()</a>, <a class="el" href="lock__verify_8c_source.html#l00223">read_lock()</a>, <a class="el" href="memstats_8c_source.html#l00119">read_malloc_stat()</a>, <a class="el" href="signit_8c_source.html#l00127">read_rrs()</a>, <a class="el" href="memstats_8c_source.html#l00179">readfile()</a>, <a class="el" href="val__anchor_8c_source.html#l00448">readkeyword_bindfile()</a>, <a class="el" href="lock__verify_8c_source.html#l00161">readup_str()</a>, <a class="el" href="replay_8c_source.html#l00188">replay_moment_read()</a>, <a class="el" href="replay_8c_source.html#l00114">replay_range_read()</a>, <a class="el" href="replay_8c_source.html#l00299">replay_scenario_read()</a>, <a class="el" href="delayer_8c_source.html#l00194">ring_create()</a>, <a class="el" href="unbound_8c_source.html#l00525">run_daemon()</a>, <a class="el" href="fake__event_8c_source.html#l00515">run_scenario()</a>, <a class="el" href="lock__verify_8c_source.html#l00323">search_cycle()</a>, <a class="el" href="streamtcp_8c_source.html#l00215">send_em()</a>, <a class="el" href="stats_8c_source.html#l00151">server_stats_obtain()</a>, <a class="el" href="stats_8c_source.html#l00176">server_stats_reply()</a>, <a class="el" href="delayer_8c_source.html#l00985">service()</a>, <a class="el" href="win__svc_8c_source.html#l00243">service_init()</a>, <a class="el" href="delayer_8c_source.html#l00920">service_loop()</a>, <a class="el" href="delayer_8c_source.html#l00483">service_recv()</a>, <a class="el" href="delayer_8c_source.html#l00348">service_send()</a>, <a class="el" href="win__svc_8c_source.html#l00397">service_start()</a>, <a class="el" href="delayer_8c_source.html#l00559">service_tcp_listen()</a>, <a class="el" href="testbound_8c_source.html#l00126">setup_config()</a>, <a class="el" href="unbound-control_8c_source.html#l00105">setup_ctx()</a>, <a class="el" href="testbound_8c_source.html#l00175">setup_playback()</a>, <a class="el" href="signit_8c_source.html#l00162">signit()</a>, <a class="el" href="daemon_8c_source.html#l00334">thread_start()</a>, <a class="el" href="locks_8c_source.html#l00051">ub_thread_blocksigs()</a>, <a class="el" href="locks_8c_source.html#l00074">ub_thread_sig_unblock()</a>, <a class="el" href="unitverify_8c_source.html#l00257">verifytest_file()</a>, <a class="el" href="worker_8c_source.html#l00326">worker_handle_control_cmd()</a>, <a class="el" href="streamtcp_8c_source.html#l00099">write_q()</a>, <a class="el" href="win__svc_8c_source.html#l00421">wsvc_command_option()</a>, and <a class="el" href="win__svc_8c_source.html#l00526">wsvc_setup_worker()</a>.</p>

</div>
</div><p>
<a class="anchor" name="41efd87afe8423dcf929a2faf152ffa0"></a><!-- doxytag: member="log.c::verbose" ref="41efd87afe8423dcf929a2faf152ffa0" args="(enum verbosity_value level, const char *format,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void verbose           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="log_8h.html#a6e4bbdddab8be2b3694da9631d23979">verbosity_value</a>&nbsp;</td>
          <td class="paramname"> <em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
implementation of verbose 
<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>level,:</em>&nbsp;</td><td>verbose level for the message. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format,:</em>&nbsp;</td><td>format string printf-style. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00161">log_vmsg()</a>, <a class="el" href="log_8h_source.html#l00054">VERB_DETAIL</a>, <a class="el" href="log_8h_source.html#l00052">VERB_OPS</a>, and <a class="el" href="log_8c_source.html#l00062">verbosity</a>.</p>

</div>
</div><p>
<a class="anchor" name="6ef02355d271c86e09596bc050d97ad9"></a><!-- doxytag: member="log.c::log_hex" ref="6ef02355d271c86e09596bc050d97ad9" args="(const char *msg, void *data, size_t length)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_hex           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Log a hex-string to the log. 
<p>
Can be any length. performs mallocs to do so, slow. But debug useful. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>msg,:</em>&nbsp;</td><td>string desc to accompany the hexdump. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data,:</em>&nbsp;</td><td>data to dump in hex format. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>length,:</em>&nbsp;</td><td>length of data. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00298">log_hex_f()</a>, and <a class="el" href="log_8c_source.html#l00062">verbosity</a>.</p>

<p>Referenced by <a class="el" href="unitmsgparse_8c_source.html#l00169">test_buffers()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7210eedf8fb84d25a03df0502040e1f8"></a><!-- doxytag: member="log.c::log_buf" ref="7210eedf8fb84d25a03df0502040e1f8" args="(enum verbosity_value level, const char *msg, ldns_buffer *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void log_buf           </td>
          <td>(</td>
          <td class="paramtype">enum <a class="el" href="log_8h.html#a6e4bbdddab8be2b3694da9631d23979">verbosity_value</a>&nbsp;</td>
          <td class="paramname"> <em>level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>msg</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>
Easy alternative for log_hex, takes a ldns_buffer. 
<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>level,:</em>&nbsp;</td><td>verbosity level for this message, compared to global verbosity setting. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>msg,:</em>&nbsp;</td><td>string desc to print </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf,:</em>&nbsp;</td><td>the buffer. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00298">log_hex_f()</a>, and <a class="el" href="log_8c_source.html#l00062">verbosity</a>.</p>

<p>Referenced by <a class="el" href="outside__network_8c_source.html#l00303">outnet_udp_cb()</a>, <a class="el" href="streamtcp_8c_source.html#l00155">recv_one()</a>, <a class="el" href="outside__network_8c_source.html#l01308">serviced_callbacks()</a>, <a class="el" href="unitmsgparse_8c_source.html#l00169">test_buffers()</a>, and <a class="el" href="worker_8c_source.html#l00681">worker_handle_request()</a>.</p>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="b25a3625a8efbaa3d81ef27bbb51c9c5"></a><!-- doxytag: member="log.c::logfile" ref="b25a3625a8efbaa3d81ef27bbb51c9c5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">FILE* <a class="el" href="log_8c.html#b25a3625a8efbaa3d81ef27bbb51c9c5">logfile</a> = 0<code> [static]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
the file logged to. 
<p>

<p>Referenced by <a class="el" href="log_8c_source.html#l00135">log_file()</a>, <a class="el" href="log_8c_source.html#l00081">log_init()</a>, <a class="el" href="log_8c_source.html#l00161">log_vmsg()</a>, and <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Oct 13 06:46:32 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>