Sophie

Sophie

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

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: smallapp/unbound-checkconf.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_d4de9d0b0b7e40f677eeaeb44e09ce63.html">smallapp</a>
  </div>
</div>
<div class="contents">
<h1>unbound-checkconf.c File Reference</h1>The config checker checks for syntax and other errors in the unbound.conf file, and can be used to check for errors before the server is started or sigHUPped.  
<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;<a class="el" href="config__file_8h.html">util/config_file.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="module_8h.html">util/module.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="net__help_8h.html">util/net_help.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="regional_8h.html">util/regional.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="iterator_8h.html">iterator/iterator.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="iter__fwd_8h.html">iterator/iter_fwd.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="validator_8h.html">validator/validator.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="localzone_8h.html">services/localzone.h</a>&quot;</code><br>
<code>#include &lt;pwd.h&gt;</code><br>
<code>#include &lt;sys/stat.h&gt;</code><br>
<code>#include &lt;glob.h&gt;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#e9a00564fea518aa741545e075d1e799">O_DEC</a>(opt, str, var)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print decimal option  <a href="#e9a00564fea518aa741545e075d1e799"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#874e72bb76a27ea5e41dc67bba7b0c5c">O_UNS</a>(opt, str, var)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print unsigned option  <a href="#874e72bb76a27ea5e41dc67bba7b0c5c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#d0df5c56677745ce1ae309cac63a8cf3">O_YNO</a>(opt, str, var)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print yesno option  <a href="#d0df5c56677745ce1ae309cac63a8cf3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#1ea35a09dba8ad16fa54e7fa3799a5e9">O_STR</a>(opt, str, var)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print string option  <a href="#1ea35a09dba8ad16fa54e7fa3799a5e9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#e626dd69f772b147861fd407c4eb5d7b">O_IFC</a>(opt, str, num, arr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print array option  <a href="#e626dd69f772b147861fd407c4eb5d7b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#9ac890d7d151aec1bfc53db5a090ada4">O_MEM</a>(opt, str, var)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print memorysize option  <a href="#9ac890d7d151aec1bfc53db5a090ada4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#2b23cd3792b137a87b68c09b179498a7">O_LST</a>(opt, name, lst)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print list option  <a href="#2b23cd3792b137a87b68c09b179498a7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#c2dc451847d9e424b4403099bd0378ac">O_LS2</a>(opt, name, lst)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">compare and print list option  <a href="#c2dc451847d9e424b4403099bd0378ac"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#64a6014565bb3e03294ec4a952d5add0">usage</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Give checkconf usage, and exit (1).  <a href="#64a6014565bb3e03294ec4a952d5add0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#ed97a37c5bf25496bb838bd5a04e0501">print_option</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg, const char *opt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print given option to stdout.  <a href="#ed97a37c5bf25496bb838bd5a04e0501"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="cc7f240f69bab4558ad8aa2b2829d4e5"></a><!-- doxytag: member="unbound&#45;checkconf.c::check_mod" ref="cc7f240f69bab4558ad8aa2b2829d4e5" args="(struct config_file *cfg, struct module_func_block *fb)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#cc7f240f69bab4558ad8aa2b2829d4e5">check_mod</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg, struct <a class="el" href="structmodule__func__block.html">module_func_block</a> *fb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check if module works with config <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="986b4ce4853d16a692eb72fb519d2c7d"></a><!-- doxytag: member="unbound&#45;checkconf.c::localzonechecks" ref="986b4ce4853d16a692eb72fb519d2c7d" args="(struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#986b4ce4853d16a692eb72fb519d2c7d">localzonechecks</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check localzones <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5479e4fce158459ff57312c254241779"></a><!-- doxytag: member="unbound&#45;checkconf.c::warn_hosts" ref="5479e4fce158459ff57312c254241779" args="(const char *typ, struct config_stub *list)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#5479e4fce158459ff57312c254241779">warn_hosts</a> (const char *typ, struct <a class="el" href="structconfig__stub.html">config_stub</a> *list)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">emit warnings for IP in hosts <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7c67efdae0016b04ce40a7605a63f9fd"></a><!-- doxytag: member="unbound&#45;checkconf.c::interfacechecks" ref="7c67efdae0016b04ce40a7605a63f9fd" args="(struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#7c67efdae0016b04ce40a7605a63f9fd">interfacechecks</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check interface strings <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0b217163027806cbb7db14c1d1c4903f"></a><!-- doxytag: member="unbound&#45;checkconf.c::aclchecks" ref="0b217163027806cbb7db14c1d1c4903f" args="(struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#0b217163027806cbb7db14c1d1c4903f">aclchecks</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check acl ips <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d7e6632b0b70aeca0d1a51e544e96cd0"></a><!-- doxytag: member="unbound&#45;checkconf.c::is_file" ref="d7e6632b0b70aeca0d1a51e544e96cd0" args="(const char *fname)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#d7e6632b0b70aeca0d1a51e544e96cd0">is_file</a> (const char *fname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">true if fname is a file <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ddb90b646a879e1d2898f144d412e6f"></a><!-- doxytag: member="unbound&#45;checkconf.c::is_dir" ref="3ddb90b646a879e1d2898f144d412e6f" args="(const char *fname)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#3ddb90b646a879e1d2898f144d412e6f">is_dir</a> (const char *fname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">true if fname is a directory <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="db50d641d150718b7d8c72d550911201"></a><!-- doxytag: member="unbound&#45;checkconf.c::basedir" ref="db50d641d150718b7d8c72d550911201" args="(char *fname)" -->
static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#db50d641d150718b7d8c72d550911201">basedir</a> (char *fname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get base dir of a fname <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b2a228b0f04bd80c3c17da445acab320"></a><!-- doxytag: member="unbound&#45;checkconf.c::check_chroot_string" ref="b2a228b0f04bd80c3c17da445acab320" args="(const char *desc, char **ss, const char *chrootdir, struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#b2a228b0f04bd80c3c17da445acab320">check_chroot_string</a> (const char *desc, char **ss, const char *chrootdir, struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check chroot for a file string <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c1b81eb80d853dd7d0ebe5da9449228d"></a><!-- doxytag: member="unbound&#45;checkconf.c::check_chroot_filelist" ref="c1b81eb80d853dd7d0ebe5da9449228d" args="(const char *desc, struct config_strlist *list, const char *chrootdir, struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#c1b81eb80d853dd7d0ebe5da9449228d">check_chroot_filelist</a> (const char *desc, struct <a class="el" href="structconfig__strlist.html">config_strlist</a> *list, const char *chrootdir, struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check file list, every file must be inside the chroot location <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1b9fa05974f6df5f364f0edba6bf2c6a"></a><!-- doxytag: member="unbound&#45;checkconf.c::check_chroot_filelist_wild" ref="1b9fa05974f6df5f364f0edba6bf2c6a" args="(const char *desc, struct config_strlist *list, const char *chrootdir, struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#1b9fa05974f6df5f364f0edba6bf2c6a">check_chroot_filelist_wild</a> (const char *desc, struct <a class="el" href="structconfig__strlist.html">config_strlist</a> *list, const char *chrootdir, struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check file list, with wildcard processing <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="17e9bb07e32032a4406ced91e266069d"></a><!-- doxytag: member="unbound&#45;checkconf.c::morechecks" ref="17e9bb07e32032a4406ced91e266069d" args="(struct config_file *cfg, const char *fname)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#17e9bb07e32032a4406ced91e266069d">morechecks</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg, const char *fname)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check configuration for errors <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="177cd0ffa79f5d2cafaf98430dca7025"></a><!-- doxytag: member="unbound&#45;checkconf.c::check_fwd" ref="177cd0ffa79f5d2cafaf98430dca7025" args="(struct config_file *cfg)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#177cd0ffa79f5d2cafaf98430dca7025">check_fwd</a> (struct <a class="el" href="structconfig__file.html">config_file</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check forwards <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="65d208f1056f0d919aa56ea49e47b632"></a><!-- doxytag: member="unbound&#45;checkconf.c::checkconf" ref="65d208f1056f0d919aa56ea49e47b632" args="(const char *cfgfile, const char *opt)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#65d208f1056f0d919aa56ea49e47b632">checkconf</a> (const char *<a class="el" href="testbound_8c.html#90e3838491a7b92fdb154c9026326af5">cfgfile</a>, const char *opt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">check config file <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="unbound&#45;checkconf.c::main" ref="0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Main routine for checkconf. <br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#d5e1c16213bbee2d5e8cc363309f418c">optind</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getopt global, in case header files fail to declare it.  <a href="#d5e1c16213bbee2d5e8cc363309f418c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unbound-checkconf_8c.html#db50a0eab9fed92fc3bfc7dfa4f2c410">optarg</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">getopt global, in case header files fail to declare it.  <a href="#db50a0eab9fed92fc3bfc7dfa4f2c410"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
The config checker checks for syntax and other errors in the unbound.conf file, and can be used to check for errors before the server is started or sigHUPped. 
<p>
Exit status 1 means an error. <hr><h2>Define Documentation</h2>
<a class="anchor" name="e9a00564fea518aa741545e075d1e799"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_DEC" ref="e9a00564fea518aa741545e075d1e799" args="(opt, str, var)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_DEC          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">str,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">var&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, str)==0) \
        {printf(<span class="stringliteral">"%d\n"</span>, (<span class="keywordtype">int</span>)cfg-&gt;var);}
</pre></div>compare and print decimal option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="874e72bb76a27ea5e41dc67bba7b0c5c"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_UNS" ref="874e72bb76a27ea5e41dc67bba7b0c5c" args="(opt, str, var)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_UNS          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">str,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">var&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, str)==0) \
        {printf(<span class="stringliteral">"%u\n"</span>, (<span class="keywordtype">unsigned</span>)cfg-&gt;var);}
</pre></div>compare and print unsigned option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d0df5c56677745ce1ae309cac63a8cf3"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_YNO" ref="d0df5c56677745ce1ae309cac63a8cf3" args="(opt, str, var)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_YNO          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">str,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">var&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, str)==0) \
        {printf(<span class="stringliteral">"%s\n"</span>, cfg-&gt;var?<span class="stringliteral">"yes"</span>:<span class="stringliteral">"no"</span>);}
</pre></div>compare and print yesno option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="1ea35a09dba8ad16fa54e7fa3799a5e9"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_STR" ref="1ea35a09dba8ad16fa54e7fa3799a5e9" args="(opt, str, var)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_STR          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">str,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">var&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, str)==0) \
        {printf(<span class="stringliteral">"%s\n"</span>, cfg-&gt;var?cfg-&gt;var:<span class="stringliteral">""</span>);}
</pre></div>compare and print string option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e626dd69f772b147861fd407c4eb5d7b"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_IFC" ref="e626dd69f772b147861fd407c4eb5d7b" args="(opt, str, num, arr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_IFC          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">str,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">num,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">arr&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, str)==0) \
        {<span class="keywordtype">int</span> i; <span class="keywordflow">for</span>(i=0; i&lt;cfg-&gt;num; i++) printf(<span class="stringliteral">"%s\n"</span>, cfg-&gt;arr[i]);}
</pre></div>compare and print array option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9ac890d7d151aec1bfc53db5a090ada4"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_MEM" ref="9ac890d7d151aec1bfc53db5a090ada4" args="(opt, str, var)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_MEM          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">str,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">var&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, str)==0) { \
        <span class="keywordflow">if</span>(cfg-&gt;var &gt; 1024*1024*1024) { \
          <span class="keywordtype">size_t</span> f=cfg-&gt;var/(size_t)1000000, b=cfg-&gt;var%(<span class="keywordtype">size_t</span>)1000000; \
          printf(<span class="stringliteral">"%u%6.6u\n"</span>, (<span class="keywordtype">unsigned</span>)f, (<span class="keywordtype">unsigned</span>)b); \
        } <span class="keywordflow">else</span> printf(<span class="stringliteral">"%u\n"</span>, (<span class="keywordtype">unsigned</span>)cfg-&gt;var);}
</pre></div>compare and print memorysize option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="2b23cd3792b137a87b68c09b179498a7"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_LST" ref="2b23cd3792b137a87b68c09b179498a7" args="(opt, name, lst)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_LST          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">name,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lst&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, name)==0) { \
        <span class="keyword">struct </span><a class="code" href="structconfig__strlist.html" title="List of strings for config options.">config_strlist</a>* p = cfg-&gt;lst; \
        <span class="keywordflow">for</span>(p = cfg-&gt;lst; p; p = p-&gt;<a class="code" href="structconfig__strlist.html#d17566ab5f1eb100f929d7e5da650e3b" title="next item in list">next</a>) \
                printf(<span class="stringliteral">"%s\n"</span>, p-&gt;<a class="code" href="structconfig__strlist.html#564e0e225575e3089def97314c89b18d" title="config option string">str</a>); \
        }
</pre></div>compare and print list option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c2dc451847d9e424b4403099bd0378ac"></a><!-- doxytag: member="unbound&#45;checkconf.c::O_LS2" ref="c2dc451847d9e424b4403099bd0378ac" args="(opt, name, lst)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define O_LS2          </td>
          <td>(</td>
          <td class="paramtype">opt,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">name,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lst&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">if</span>(strcmp(opt, name)==0) { \
        <span class="keyword">struct </span><a class="code" href="structconfig__str2list.html" title="List of two strings for config options.">config_str2list</a>* p = cfg-&gt;lst; \
        <span class="keywordflow">for</span>(p = cfg-&gt;lst; p; p = p-&gt;<a class="code" href="structconfig__str2list.html#ddcf03dde175a95488d5350368cd417e" title="next item in list">next</a>) \
                printf(<span class="stringliteral">"%s %s\n"</span>, p-&gt;<a class="code" href="structconfig__str2list.html#2945f6646e6cd22d864d1585dfeaacc0" title="first string">str</a>, p-&gt;<a class="code" href="structconfig__str2list.html#8ab8de312147e2afdbeb79b213bf3632" title="second string">str2</a>); \
        }
</pre></div>compare and print list option 
<p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00124">print_option()</a>.</p>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="64a6014565bb3e03294ec4a952d5add0"></a><!-- doxytag: member="unbound&#45;checkconf.c::usage" ref="64a6014565bb3e03294ec4a952d5add0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void usage           </td>
          <td>(</td>
          <td class="paramtype">void&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Give checkconf usage, and exit (1). 
<p>

</div>
</div><p>
<a class="anchor" name="ed97a37c5bf25496bb838bd5a04e0501"></a><!-- doxytag: member="unbound&#45;checkconf.c::print_option" ref="ed97a37c5bf25496bb838bd5a04e0501" args="(struct config_file *cfg, const char *opt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void print_option           </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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>opt</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print given option to stdout. 
<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>cfg,:</em>&nbsp;</td><td>config </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>opt,:</em>&nbsp;</td><td>option name without trailing :. This is different from config_set_option. </td></tr>
  </table>
</dl>

<p>References <a class="el" href="log_8c_source.html#l00267">fatal_exit()</a>, <a class="el" href="log_8c_source.html#l00064">logfile</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00084">O_DEC</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00096">O_IFC</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00111">O_LS2</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00105">O_LST</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00099">O_MEM</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00093">O_STR</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00087">O_UNS</a>, <a class="el" href="unbound-checkconf_8c_source.html#l00090">O_YNO</a>, and <a class="el" href="log_8c_source.html#l00062">verbosity</a>.</p>

<p>Referenced by <a class="el" href="unbound-checkconf_8c_source.html#l00547">checkconf()</a>.</p>

</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="d5e1c16213bbee2d5e8cc363309f418c"></a><!-- doxytag: member="unbound&#45;checkconf.c::optind" ref="d5e1c16213bbee2d5e8cc363309f418c" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="streamtcp_8c.html#d5e1c16213bbee2d5e8cc363309f418c">optind</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
getopt global, in case header files fail to declare it. 
<p>

</div>
</div><p>
<a class="anchor" name="db50a0eab9fed92fc3bfc7dfa4f2c410"></a><!-- doxytag: member="unbound&#45;checkconf.c::optarg" ref="db50a0eab9fed92fc3bfc7dfa4f2c410" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* <a class="el" href="streamtcp_8c.html#db50a0eab9fed92fc3bfc7dfa4f2c410">optarg</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
getopt global, in case header files fail to declare it. 
<p>

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