Code Search for Developers
 
 
  

agent__registry_8h.html from net-snmp at Krugle


Show agent__registry_8h.html syntax highlighted

<!--#set var="section" value="development" -->
<!--#include virtual="/page-top.html" -->
<!-- CONTENT START -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>agent_registry.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.2.11 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; </center>
<hr><h1>agent_registry.h File Reference</h1><code>#include "<a class="el" href="snmp__agent_8h-source.html">snmp_agent.h</a>"</code><br>

<p>
<a href="agent__registry_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structregister__parameters.html">register_parameters</a></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structsubtree__context__cache__s.html">subtree_context_cache_s</a></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structview__parameters.html">view_parameters</a></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a0">MIB_REGISTERED_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a1">MIB_DUPLICATE_REGISTRATION</a>&nbsp;&nbsp;&nbsp;-1</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a2">MIB_REGISTRATION_FAILED</a>&nbsp;&nbsp;&nbsp;-2</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a3">MIB_UNREGISTERED_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a4">MIB_NO_SUCH_REGISTRATION</a>&nbsp;&nbsp;&nbsp;-1</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a5">MIB_UNREGISTRATION_FAILED</a>&nbsp;&nbsp;&nbsp;-2</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a6">DEFAULT_MIB_PRIORITY</a>&nbsp;&nbsp;&nbsp;127</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a7">REGISTER_MIB</a>(descr, var, vartype, theoid)</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a8">NUM_EXTERNAL_FDS</a>&nbsp;&nbsp;&nbsp;32</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a9">FD_REGISTERED_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a10">FD_REGISTRATION_FAILED</a>&nbsp;&nbsp;&nbsp;-2</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a11">FD_UNREGISTERED_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a12">FD_NO_SUCH_REGISTRATION</a>&nbsp;&nbsp;&nbsp;-1</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a13">SIG_REGISTERED_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a14">SIG_REGISTRATION_FAILED</a>&nbsp;&nbsp;&nbsp;-2</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a15">SIG_UNREGISTERED_OK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a16">NUM_EXTERNAL_SIGS</a>&nbsp;&nbsp;&nbsp;32</td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef <a class="el" href="structsubtree__context__cache__s.html">subtree_context_cache_s</a>&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a31">subtree_context_cache</a></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a32">setup_tree</a> (void)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a33">find_subtree</a> (oid *, size_t, struct <a class="el" href="structsubtree.html">subtree</a> *, const char *context_name)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a34">find_subtree_next</a> (oid *, size_t, struct <a class="el" href="structsubtree.html">subtree</a> *, const char *context_name)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a35">find_subtree_previous</a> (oid *, size_t, struct <a class="el" href="structsubtree.html">subtree</a> *, const char *context_name)</td></tr>
<tr><td nowrap align=right valign=top>snmp_session *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a36">get_session_for_oid</a> (oid *, size_t, const char *context_name)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a37">register_mib</a> (const char *, struct <a class="el" href="structvariable.html">variable</a> *, size_t, size_t, oid *, size_t)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a38">register_mib_priority</a> (const char *, struct <a class="el" href="structvariable.html">variable</a> *, size_t, size_t, oid *, size_t, int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a39">register_mib_range</a> (const char *, struct <a class="el" href="structvariable.html">variable</a> *, size_t, size_t, oid *, size_t, int, int, oid, struct snmp_session *)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a40">register_mib_context</a> (const char *, struct <a class="el" href="structvariable.html">variable</a> *, size_t, size_t, oid *, size_t, int, int, oid, struct snmp_session *, const char *, int, int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a41">register_mib_table_row</a> (const char *, struct <a class="el" href="structvariable.html">variable</a> *, size_t, size_t, oid *, size_t, int, int, struct snmp_session *, const char *, int, int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a42">unregister_mib</a> (oid *, size_t)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a43">unregister_mib_priority</a> (oid *, size_t, int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a44">unregister_mib_range</a> (oid *, size_t, int, int, oid)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a45">unregister_mib_context</a> (oid *, size_t, int, int, oid, const char *)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a46">unregister_mibs_by_session</a> (struct snmp_session *)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a47">free_subtree</a> (struct <a class="el" href="structsubtree.html">subtree</a> *)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a48">compare_tree</a> (const oid *, size_t, const oid *, size_t)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a49">in_a_view</a> (oid *, size_t *, struct snmp_pdu *, int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a50">check_access</a> (struct snmp_pdu *pdu)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a51">register_mib_reattach</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a52">register_readfd</a> (int, void(*func)(int, void *), void *)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a53">register_writefd</a> (int, void(*func)(int, void *), void *)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a54">register_exceptfd</a> (int, void(*func)(int, void *), void *)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a55">unregister_readfd</a> (int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a56">unregister_writefd</a> (int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a57">unregister_exceptfd</a> (int)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a58">register_signal</a> (int, void(*func)(int))</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a59">unregister_signal</a> (int)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a60">find_first_subtree</a> (const char *context_name)</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="agent__registry_8h.html#a31">subtree_context_cache</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a61">get_top_context_cache</a> (void)</td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a17">external_readfd</a> [NUM_EXTERNAL_FDS]</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a18">external_readfdlen</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a19">external_writefd</a> [NUM_EXTERNAL_FDS]</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a20">external_writefdlen</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a21">external_exceptfd</a> [NUM_EXTERNAL_FDS]</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a22">external_exceptfdlen</a></td></tr>
<tr><td nowrap align=right valign=top>void(*&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a23">external_readfdfunc</a> [NUM_EXTERNAL_FDS])(int, void *)</td></tr>
<tr><td nowrap align=right valign=top>void(*&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a24">external_writefdfunc</a> [NUM_EXTERNAL_FDS])(int, void *)</td></tr>
<tr><td nowrap align=right valign=top>void(*&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a25">external_exceptfdfunc</a> [NUM_EXTERNAL_FDS])(int, void *)</td></tr>
<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a26">external_readfd_data</a> [NUM_EXTERNAL_FDS]</td></tr>
<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a27">external_writefd_data</a> [NUM_EXTERNAL_FDS]</td></tr>
<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a28">external_exceptfd_data</a> [NUM_EXTERNAL_FDS]</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a29">external_signal_scheduled</a> [NUM_EXTERNAL_SIGS]</td></tr>
<tr><td nowrap align=right valign=top>void(*&nbsp;</td><td valign=bottom><a class="el" href="agent__registry_8h.html#a30">external_signal_handler</a> [NUM_EXTERNAL_SIGS])(int)</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a name="a6" doxytag="agent_registry.h::DEFAULT_MIB_PRIORITY"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define DEFAULT_MIB_PRIORITY&nbsp;&nbsp;&nbsp;127
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00046">46</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a12" doxytag="agent_registry.h::FD_NO_SUCH_REGISTRATION"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define FD_NO_SUCH_REGISTRATION&nbsp;&nbsp;&nbsp;-1
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00098">98</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a9" doxytag="agent_registry.h::FD_REGISTERED_OK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define FD_REGISTERED_OK&nbsp;&nbsp;&nbsp;0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00094">94</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a10" doxytag="agent_registry.h::FD_REGISTRATION_FAILED"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define FD_REGISTRATION_FAILED&nbsp;&nbsp;&nbsp;-2
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00095">95</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a11" doxytag="agent_registry.h::FD_UNREGISTERED_OK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define FD_UNREGISTERED_OK&nbsp;&nbsp;&nbsp;0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00097">97</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a1" doxytag="agent_registry.h::MIB_DUPLICATE_REGISTRATION"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MIB_DUPLICATE_REGISTRATION&nbsp;&nbsp;&nbsp;-1
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00039">39</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a4" doxytag="agent_registry.h::MIB_NO_SUCH_REGISTRATION"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MIB_NO_SUCH_REGISTRATION&nbsp;&nbsp;&nbsp;-1
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00043">43</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a0" doxytag="agent_registry.h::MIB_REGISTERED_OK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MIB_REGISTERED_OK&nbsp;&nbsp;&nbsp;0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00038">38</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="agent_registry.h::MIB_REGISTRATION_FAILED"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MIB_REGISTRATION_FAILED&nbsp;&nbsp;&nbsp;-2
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00040">40</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="agent_registry.h::MIB_UNREGISTERED_OK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MIB_UNREGISTERED_OK&nbsp;&nbsp;&nbsp;0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00042">42</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="agent_registry.h::MIB_UNREGISTRATION_FAILED"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MIB_UNREGISTRATION_FAILED&nbsp;&nbsp;&nbsp;-2
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00044">44</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a8" doxytag="agent_registry.h::NUM_EXTERNAL_FDS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define NUM_EXTERNAL_FDS&nbsp;&nbsp;&nbsp;32
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00092">92</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a16" doxytag="agent_registry.h::NUM_EXTERNAL_SIGS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define NUM_EXTERNAL_SIGS&nbsp;&nbsp;&nbsp;32
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00125">125</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a7" doxytag="agent_registry.h::REGISTER_MIB"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define REGISTER_MIB</td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>descr,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>var,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>vartype,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>theoid&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md">
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre><font class="keywordflow">if</font> (<a class="code" href="agent__registry_8c.html#a30">register_mib</a>(descr, (<font class="keyword">struct</font> <a class="code" href="structvariable.html">variable</a> *) var, <font class="keyword">sizeof</font>(<font class="keyword">struct</font> vartype), \
               <font class="keyword">sizeof</font>(var)/<font class="keyword">sizeof</font>(<font class="keyword">struct</font> vartype),                     \
               theoid, <font class="keyword">sizeof</font>(theoid)/<font class="keyword">sizeof</font>(oid)) != <a class="code" href="agent__registry_8h.html#a0">MIB_REGISTERED_OK</a> ) \
        DEBUGMSGTL((<font class="stringliteral">"register_mib"</font>, <font class="stringliteral">"%s registration failed\n"</font>, descr));</pre></div>
<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00085">85</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="agent_registry.h::SIG_REGISTERED_OK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define SIG_REGISTERED_OK&nbsp;&nbsp;&nbsp;0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00120">120</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="agent_registry.h::SIG_REGISTRATION_FAILED"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define SIG_REGISTRATION_FAILED&nbsp;&nbsp;&nbsp;-2
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00121">121</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<a name="a15" doxytag="agent_registry.h::SIG_UNREGISTERED_OK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define SIG_UNREGISTERED_OK&nbsp;&nbsp;&nbsp;0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8h-source.html#l00123">123</a> of file <a class="el" href="agent__registry_8h-source.html">agent_registry.h</a>.    </td>
  </tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a name="a31" doxytag="agent_registry.h::subtree_context_cache"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structsubtree__context__cache__s.html">subtree_context_cache_s</a>  subtree_context_cache
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a50" doxytag="agent_registry.h::check_access"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int check_access </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>struct snmp_pdu *&nbsp;</td>
          <td class="mdname1">&nbsp; <em>pdu</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00866">866</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="snmp__agent_8c-source.html#l01030">handle_snmp_packet</a>().
<p>
<div class="fragment"><pre>00867 {
00868   <font class="keyword">struct </font><a class="code" href="structview__parameters.html">view_parameters</a> view_parms;
00869   view_parms.<a class="code" href="structview__parameters.html#m0">pdu</a> = pdu;
00870   view_parms.<a class="code" href="structview__parameters.html#m1">name</a> = 0;
00871   view_parms.<a class="code" href="structview__parameters.html#m2">namelen</a> = 0;
00872   view_parms.<a class="code" href="structview__parameters.html#m3">errorcode</a> = 0;
00873 
00874   <font class="keywordflow">if</font> (pdu-&gt;flags &amp; UCD_MSG_FLAG_ALWAYS_IN_VIEW)
00875     <font class="keywordflow">return</font> 0;           <font class="comment">/* Enable bypassing of view-based access control */</font>
00876 
00877   <font class="keywordflow">switch</font> (pdu-&gt;version) {
00878   <font class="keywordflow">case</font> SNMP_VERSION_1:
00879   <font class="keywordflow">case</font> SNMP_VERSION_2c:
00880   <font class="keywordflow">case</font> SNMP_VERSION_3:
00881     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
00882                         <a class="code" href="agent__callbacks_8h.html#a5">SNMPD_CALLBACK_ACM_CHECK_INITIAL</a>,
00883                         &amp;view_parms);
00884     <font class="keywordflow">return</font> view_parms.<a class="code" href="structview__parameters.html#m3">errorcode</a>;
00885   }
00886   <font class="keywordflow">return</font> 1;
00887 }
</pre></div>    </td>
  </tr>
</table>
<a name="a48" doxytag="agent_registry.h::compare_tree"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int compare_tree </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>in_name1</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>len1</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>in_name2</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>len2</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00897">897</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="snmp__vars_8c-source.html#l00267">nullOidLen</a>().
<p>
<div class="fragment"><pre>00901 {
00902     <font class="keyword">register</font> <font class="keywordtype">int</font> len, res;
00903     <font class="keyword">register</font> <font class="keyword">const</font> oid * name1 = in_name1;
00904     <font class="keyword">register</font> <font class="keyword">const</font> oid * name2 = in_name2;
00905 
00906     <font class="comment">/* len = minimum of len1 and len2 */</font>
00907     <font class="keywordflow">if</font> (len1 &lt; len2)
00908         len = len1;
00909     <font class="keywordflow">else</font>
00910         len = len2;
00911     <font class="comment">/* find first non-matching OID */</font>
00912     <font class="keywordflow">while</font>(len-- &gt; 0){
00913         res = *(name1++) - *(name2++);
00914         <font class="keywordflow">if</font> (res &lt; 0)
00915             <font class="keywordflow">return</font> -1;
00916         <font class="keywordflow">if</font> (res &gt; 0)
00917             <font class="keywordflow">return</font> 1;
00918     }
00919     <font class="comment">/* both OIDs equal up to length of shorter OID */</font>
00920     <font class="keywordflow">if</font> (len1 &lt; len2)
00921         <font class="keywordflow">return</font> -1;
00922 
00923     <font class="comment">/* name1 matches name2 for length of name2, or they are equal */</font>
00924     <font class="keywordflow">return</font> 0;
00925 }
</pre></div>    </td>
  </tr>
</table>
<a name="a60" doxytag="agent_registry.h::find_first_subtree"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structsubtree.html">subtree</a>* find_first_subtree </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname1">&nbsp; <em>context_name</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00074">74</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="agent__registry_8c-source.html#l00927">find_subtree_previous</a>(), <a class="el" href="agent__registry_8c-source.html#l00981">get_session_for_oid</a>(), <a class="el" href="agent__registry_8c-source.html#l00698">unregister_mib_context</a>(), and <a class="el" href="agent__registry_8c-source.html#l00781">unregister_mibs_by_session</a>().
<p>
<div class="fragment"><pre>00074                                              {
00075     <a class="code" href="structsubtree__context__cache__s.html">subtree_context_cache</a> *ptr;
00076     <font class="keywordflow">if</font> (!context_name)
00077         context_name = <font class="stringliteral">""</font>;
00078     DEBUGMSGTL((<font class="stringliteral">"find_first_subtree"</font>,<font class="stringliteral">"looking for subtree for context: \"%s\"\n"</font>, context_name));
00079     <font class="keywordflow">for</font>(ptr = <a class="code" href="agent__registry_8c.html#a1">context_subtrees</a>; ptr; ptr = ptr-&gt;<a class="code" href="structsubtree__context__cache__s.html#m2">next</a>) {
00080         <font class="keywordflow">if</font> (strcmp(ptr-&gt;<a class="code" href="structsubtree__context__cache__s.html#m0">context_name</a>, context_name) == 0)<font class="keyword"> </font>{
00081             DEBUGMSGTL((<font class="stringliteral">"find_first_subtree"</font>,<font class="stringliteral">"found one for: \"%s\"\n"</font>, context_name));
00082             <font class="keywordflow">return</font> ptr-&gt;<a class="code" href="structsubtree__context__cache__s.html#m1">first_subtree</a>;
00083         }
00084     }
00085     DEBUGMSGTL((<font class="stringliteral">"find_first_subtree"</font>,<font class="stringliteral">"Didn't find a subtree for: \"%s\"\n"</font>, context_name));
00086     <font class="keywordflow">return</font> NULL;
00087 }
</pre></div>    </td>
  </tr>
</table>
<a name="a33" doxytag="agent_registry.h::find_subtree"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structsubtree.html">subtree</a>* find_subtree </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>subtree</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>context_name</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00967">967</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="snmp__agent_8c-source.html#l01242">create_subtree_cache</a>(), <a class="el" href="snmp__vars_8c-source.html#l00437">getStatPtr</a>(), <a class="el" href="agent__registry_8c-source.html#l00203">load_subtree</a>(), and <a class="el" href="agent__registry_8c-source.html#l00698">unregister_mib_context</a>().
<p>
<div class="fragment"><pre>00971 {
00972   <font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *myptr;
00973 
00974   myptr = <a class="code" href="agent__registry_8h.html#a35">find_subtree_previous</a>(name, len, <a class="code" href="structsubtree.html">subtree</a>, context_name);
00975   <font class="keywordflow">if</font> (myptr &amp;&amp; snmp_oid_compare(name, len, myptr-&gt;<a class="code" href="structsubtree.html#m4">end</a>, myptr-&gt;<a class="code" href="structsubtree.html#m5">end_len</a>) &lt; 0)
00976         <font class="keywordflow">return</font> myptr;
00977 
00978   <font class="keywordflow">return</font> NULL;
00979 }
</pre></div>    </td>
  </tr>
</table>
<a name="a34" doxytag="agent_registry.h::find_subtree_next"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structsubtree.html">subtree</a>* find_subtree_next </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>subtree</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>context_name</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00947">947</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="snmp__vars_8c-source.html#l00437">getStatPtr</a>(), and <a class="el" href="agent__registry_8c-source.html#l00203">load_subtree</a>().
<p>
<div class="fragment"><pre>00951 {
00952   <font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *myptr = NULL;
00953 
00954   myptr = <a class="code" href="agent__registry_8h.html#a35">find_subtree_previous</a>(name, len, <a class="code" href="structsubtree.html">subtree</a>, context_name);
00955   <font class="keywordflow">if</font> ( myptr != NULL ) {
00956      myptr = myptr-&gt;<a class="code" href="structsubtree.html#m14">next</a>;
00957      <font class="keywordflow">while</font> ( myptr &amp;&amp; (myptr-&gt;<a class="code" href="structsubtree.html#m6">variables</a> == NULL || myptr-&gt;<a class="code" href="structsubtree.html#m7">variables_len</a> == 0) )
00958          myptr = myptr-&gt;<a class="code" href="structsubtree.html#m14">next</a>;
00959      <font class="keywordflow">return</font> myptr;
00960   }
00961   <font class="keywordflow">else</font> <font class="keywordflow">if</font> (<a class="code" href="structsubtree.html">subtree</a> &amp;&amp; snmp_oid_compare(name, len, subtree-&gt;<a class="code" href="structsubtree.html#m2">start</a>, subtree-&gt;<a class="code" href="structsubtree.html#m3">start_len</a>) &lt; 0)
00962      <font class="keywordflow">return</font> <a class="code" href="structsubtree.html">subtree</a>;
00963   <font class="keywordflow">else</font>
00964      <font class="keywordflow">return</font> NULL;
00965 }
</pre></div>    </td>
  </tr>
</table>
<a name="a35" doxytag="agent_registry.h::find_subtree_previous"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structsubtree.html">subtree</a>* find_subtree_previous </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>subtree</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>context_name</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00927">927</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="agent__registry_8c-source.html#l00967">find_subtree</a>(), <a class="el" href="agent__registry_8c-source.html#l00947">find_subtree_next</a>(), <a class="el" href="agent__registry_8c-source.html#l00981">get_session_for_oid</a>(), and <a class="el" href="agent__registry_8c-source.html#l00203">load_subtree</a>().
<p>
<div class="fragment"><pre>00931 {
00932   <font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *myptr, *previous = NULL;
00933 
00934   <font class="keywordflow">if</font> ( subtree )
00935         myptr = <a class="code" href="structsubtree.html">subtree</a>;
00936   <font class="keywordflow">else</font>
00937         myptr = <a class="code" href="agent__registry_8h.html#a60">find_first_subtree</a>(context_name);  <font class="comment">/* look through everything */</font>
00938 
00939   <font class="keywordflow">for</font>( ; myptr != NULL; previous = myptr, myptr = myptr-&gt;<a class="code" href="structsubtree.html#m14">next</a>) {
00940     <font class="keywordflow">if</font> (snmp_oid_compare(name, len, myptr-&gt;<a class="code" href="structsubtree.html#m2">start</a>, myptr-&gt;<a class="code" href="structsubtree.html#m3">start_len</a>) &lt; 0)<font class="keyword"> </font>{
00941       <font class="keywordflow">return</font> previous;
00942     }
00943   }
00944   <font class="keywordflow">return</font> previous;
00945 }
</pre></div>    </td>
  </tr>
</table>
<a name="a47" doxytag="agent_registry.h::free_subtree"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structsubtree.html">subtree</a>* free_subtree </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> *&nbsp;</td>
          <td class="mdname1">&nbsp; <em>st</em>          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00806">806</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="agent__registry_8c-source.html#l00203">load_subtree</a>(), <a class="el" href="agent__registry_8c-source.html#l00355">register_mib_context2</a>(), <a class="el" href="agent__registry_8c-source.html#l00698">unregister_mib_context</a>(), and <a class="el" href="agent__registry_8c-source.html#l00781">unregister_mibs_by_session</a>().
<p>
<div class="fragment"><pre>00807 {
00808   <font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *ret = NULL;
00809 
00810   <font class="keywordflow">if</font> (st-&gt;<a class="code" href="structsubtree.html#m6">variables</a> != NULL &amp;&amp;
00811       snmp_oid_compare(st-&gt;<a class="code" href="structsubtree.html#m0">name</a>, st-&gt;<a class="code" href="structsubtree.html#m1">namelen</a>, st-&gt;<a class="code" href="structsubtree.html#m2">start</a>, st-&gt;<a class="code" href="structsubtree.html#m3">start_len</a>) == 0)<font class="keyword"> </font>{
00812     free(st-&gt;<a class="code" href="structsubtree.html#m6">variables</a>);
00813     st-&gt;<a class="code" href="structsubtree.html#m6">variables</a> = NULL;
00814   }
00815   <font class="keywordflow">if</font> (st-&gt;<a class="code" href="structsubtree.html#m14">next</a> != NULL) {
00816     ret = st-&gt;<a class="code" href="structsubtree.html#m14">next</a>;
00817   }
00818   free(st);
00819   <font class="keywordflow">return</font> ret;
00820 }
</pre></div>    </td>
  </tr>
</table>
<a name="a36" doxytag="agent_registry.h::get_session_for_oid"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct snmp_session* get_session_for_oid </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>len</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>context_name</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00981">981</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>00983 {
00984    <font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *myptr;
00985 
00986    myptr = <a class="code" href="agent__registry_8h.html#a35">find_subtree_previous</a>(name, len, <a class="code" href="agent__registry_8h.html#a60">find_first_subtree</a>(context_name),
00987                                  context_name);
00988    <font class="keywordflow">while</font> ( myptr &amp;&amp; myptr-&gt;<a class="code" href="structsubtree.html#m6">variables</a> == NULL )
00989         myptr = myptr-&gt;<a class="code" href="structsubtree.html#m14">next</a>;
00990 
00991    <font class="keywordflow">if</font> ( myptr == NULL )
00992         <font class="keywordflow">return</font> NULL;
00993    <font class="keywordflow">else</font>
00994         <font class="keywordflow">return</font> myptr-&gt;<a class="code" href="structsubtree.html#m10">session</a>;
00995 }
</pre></div>    </td>
  </tr>
</table>
<a name="a61" doxytag="agent_registry.h::get_top_context_cache"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="agent__registry_8h.html#a31">subtree_context_cache</a>* get_top_context_cache </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>void&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00069">69</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>00069                                                    {
00070     <font class="keywordflow">return</font> <a class="code" href="agent__registry_8c.html#a1">context_subtrees</a>;
00071 }
</pre></div>    </td>
  </tr>
</table>
<a name="a49" doxytag="agent_registry.h::in_a_view"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int in_a_view </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t *&nbsp;</td>
          <td class="mdname">&nbsp; <em>namelen</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct snmp_pdu *&nbsp;</td>
          <td class="mdname">&nbsp; <em>pdu</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>type</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00831">831</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="snmp__agent_8c-source.html#l01214">check_acm</a>(), <a class="el" href="snmp__agent_8c-source.html#l01242">create_subtree_cache</a>(), and <a class="el" href="snmp__vars_8c-source.html#l00267">nullOidLen</a>().
<p>
<div class="fragment"><pre>00835 {
00836 
00837   <font class="keyword">struct </font><a class="code" href="structview__parameters.html">view_parameters</a> view_parms;
00838   view_parms.<a class="code" href="structview__parameters.html#m0">pdu</a> = pdu;
00839   view_parms.<a class="code" href="structview__parameters.html#m1">name</a> = name;
00840   <font class="keywordflow">if</font> (namelen)
00841       view_parms.<a class="code" href="structview__parameters.html#m2">namelen</a> = *namelen;
00842   <font class="keywordflow">else</font>
00843       view_parms.<a class="code" href="structview__parameters.html#m2">namelen</a> = 0;
00844   view_parms.<a class="code" href="structview__parameters.html#m3">errorcode</a> = 0;
00845 
00846   <font class="keywordflow">if</font> (pdu-&gt;flags &amp; UCD_MSG_FLAG_ALWAYS_IN_VIEW)
00847     <font class="keywordflow">return</font> VACM_SUCCESS; <font class="comment">/* Enable bypassing of view-based access control */</font>
00848 
00849   <font class="comment">/* check for v1 and counter64s, since snmpv1 doesn't support it */</font>
00850   <font class="keywordflow">if</font> (pdu-&gt;version == SNMP_VERSION_1 &amp;&amp; type == ASN_COUNTER64)
00851     <font class="keywordflow">return</font> VACM_NOTINVIEW;
00852   <font class="keywordflow">switch</font> (pdu-&gt;version) {
00853   <font class="keywordflow">case</font> SNMP_VERSION_1:
00854   <font class="keywordflow">case</font> SNMP_VERSION_2c:
00855   <font class="keywordflow">case</font> SNMP_VERSION_3:
00856     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, <a class="code" href="agent__callbacks_8h.html#a0">SNMPD_CALLBACK_ACM_CHECK</a>,
00857                         &amp;view_parms);
00858     <font class="keywordflow">return</font> view_parms.<a class="code" href="structview__parameters.html#m3">errorcode</a>;
00859   }
00860   <font class="keywordflow">return</font> VACM_NOSECNAME;
00861 }
</pre></div>    </td>
  </tr>
</table>
<a name="a54" doxytag="agent_registry.h::register_exceptfd"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_exceptfd </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void(*&nbsp;</td>
          <td class="mdname">&nbsp; <em>func</em>)(int, void *), </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname">&nbsp; <em>data</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l01097">1097</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>01097                                                                      {
01098     <font class="keywordflow">if</font> (external_exceptfdlen &lt; <a class="code" href="agent__registry_8h.html#a8">NUM_EXTERNAL_FDS</a>) {
01099         external_exceptfd[external_exceptfdlen] = fd;
01100         external_exceptfdfunc[external_exceptfdlen] = func;
01101         external_exceptfd_data[external_exceptfdlen] = data;
01102         external_exceptfdlen++;
01103         DEBUGMSGTL((<font class="stringliteral">"register_exceptfd"</font>, <font class="stringliteral">"registered fd %d\n"</font>, fd));
01104         <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a9">FD_REGISTERED_OK</a>;
01105     } <font class="keywordflow">else</font> {
01106         snmp_log(LOG_CRIT, <font class="stringliteral">"register_exceptfd: too many file descriptors\n"</font>);
01107         <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a10">FD_REGISTRATION_FAILED</a>;
01108     }
01109 }
</pre></div>    </td>
  </tr>
</table>
<a name="a37" doxytag="agent_registry.h::register_mib"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_mib </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>moduleName</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>var</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>varsize</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>numvars</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloclen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00565">565</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>00571 {
00572   <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a38">register_mib_priority</a>( moduleName, var, varsize, numvars,
00573                                 mibloc, mibloclen, <a class="code" href="agent__registry_8h.html#a6">DEFAULT_MIB_PRIORITY</a> );
00574 }
</pre></div>    </td>
  </tr>
</table>
<a name="a40" doxytag="agent_registry.h::register_mib_context"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_mib_context </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>moduleName</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>var</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>varsize</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>numvars</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloclen</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>priority</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>range_subid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid&nbsp;</td>
          <td class="mdname">&nbsp; <em>range_ubound</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct snmp_session *&nbsp;</td>
          <td class="mdname">&nbsp; <em>ss</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>context</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>timeout</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>flags</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00481">481</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="agent__registry_8c-source.html#l00535">register_mib_range</a>().
<p>
<div class="fragment"><pre>00493                                 {
00494     <font class="keywordflow">return</font> <a class="code" href="old__api_8h.html#a4">register_old_api</a>(moduleName, var, varsize, numvars, mibloc,
00495                             mibloclen, priority,
00496                             range_subid, range_ubound,
00497                             ss, context, timeout, flags);
00498 }
</pre></div>    </td>
  </tr>
</table>
<a name="a38" doxytag="agent_registry.h::register_mib_priority"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_mib_priority </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>moduleName</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>var</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>varsize</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>numvars</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloclen</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>priority</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00552">552</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="agent__registry_8c-source.html#l00565">register_mib</a>().
<p>
<div class="fragment"><pre>00559 {
00560   <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a39">register_mib_range</a>( moduleName, var, varsize, numvars,
00561                                 mibloc, mibloclen, priority, 0, 0, NULL );
00562 }
</pre></div>    </td>
  </tr>
</table>
<a name="a39" doxytag="agent_registry.h::register_mib_range"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_mib_range </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>moduleName</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>var</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>varsize</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>numvars</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloclen</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>priority</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>range_subid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid&nbsp;</td>
          <td class="mdname">&nbsp; <em>range_ubound</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct snmp_session *&nbsp;</td>
          <td class="mdname">&nbsp; <em>ss</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00535">535</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.
<p>
Referenced by <a class="el" href="agent__registry_8c-source.html#l00552">register_mib_priority</a>().
<p>
<div class="fragment"><pre>00545 {
00546   <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a40">register_mib_context</a>( moduleName, var, varsize, numvars,
00547                                 mibloc, mibloclen, priority,
00548                                 range_subid, range_ubound, ss, <font class="stringliteral">""</font>, -1, 0);
00549 }
</pre></div>    </td>
  </tr>
</table>
<a name="a51" doxytag="agent_registry.h::register_mib_reattach"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void register_mib_reattach </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>void&nbsp;</td>
          <td class="mdname1">&nbsp;          </td>
          <td class="md">)&nbsp;</td>
          <td class="md"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00527">527</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>00527                             {
00528     <a class="code" href="structsubtree__context__cache__s.html">subtree_context_cache</a> *ptr;
00529     <font class="keywordflow">for</font>(ptr = <a class="code" href="agent__registry_8c.html#a1">context_subtrees</a>; ptr; ptr = ptr-&gt;<a class="code" href="structsubtree__context__cache__s.html#m2">next</a>) {
00530         <a class="code" href="agent__registry_8c.html#a26">register_mib_reattach_subtree</a>(ptr-&gt;<a class="code" href="structsubtree__context__cache__s.html#m1">first_subtree</a>);
00531     }
00532 }
</pre></div>    </td>
  </tr>
</table>
<a name="a41" doxytag="agent_registry.h::register_mib_table_row"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_mib_table_row </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>moduleName</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> *&nbsp;</td>
          <td class="mdname">&nbsp; <em>var</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>varsize</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>numvars</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname">&nbsp; <em>mibloclen</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>priority</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>var_subid</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct snmp_session *&nbsp;</td>
          <td class="mdname">&nbsp; <em>ss</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>context</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>timeout</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>flags</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l00578">578</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>00590 {
00591   <font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *subtree;
00592   <font class="keyword">struct </font><a class="code" href="structregister__parameters.html">register_parameters</a> reg_parms;
00593   <font class="keywordtype">int</font> rc, x;
00594   u_char *v;
00595 
00596   <font class="keywordflow">for</font>(x = 0; x &lt; numvars; x++) {
00597 
00598     <font class="comment">/* </font>
00599      * allocate a subtree for the mib registration
00600      */
00601     <a class="code" href="structsubtree.html">subtree</a> = (<font class="keyword">struct </font><a class="code" href="structsubtree.html">subtree</a> *) malloc(sizeof(struct subtree));
00602     <font class="keywordflow">if</font> (<a class="code" href="structsubtree.html">subtree</a> == NULL) {
00603       <a class="code" href="agent__registry_8h.html#a45">unregister_mib_context</a>(mibloc, mibloclen, priority, 
00604                              var_subid, numvars, context);
00605       <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a2">MIB_REGISTRATION_FAILED</a>;
00606     }
00607 
00608     <font class="comment">/* </font>
00609      * fill in subtree
00610      */
00611     memcpy(subtree-&gt;<a class="code" href="structsubtree.html#m0">name</a>, mibloc, mibloclen*<font class="keyword">sizeof</font>(oid));
00612     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m0">name</a>[var_subid - 1] += x;
00613     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m1">namelen</a> = (u_char) mibloclen;
00614 
00615     memcpy(subtree-&gt;<a class="code" href="structsubtree.html#m2">start</a>, mibloc, mibloclen*<font class="keyword">sizeof</font>(oid));
00616     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m2">start</a>[var_subid - 1] += x;
00617     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m3">start_len</a> = (u_char) mibloclen;
00618 
00619     memcpy(subtree-&gt;<a class="code" href="structsubtree.html#m4">end</a>, mibloc, mibloclen*<font class="keyword">sizeof</font>(oid));
00620     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m4">end</a>[var_subid - 1] += x;
00621     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m4">end</a>[mibloclen - 1]++;
00622     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m5">end_len</a> = (u_char) mibloclen;
00623 
00624     memcpy(subtree-&gt;<a class="code" href="structsubtree.html#m9">label</a>, moduleName, strlen(moduleName)+1);
00625 
00626     <font class="keywordflow">if</font> (var) {
00627       v = (u_char *)var + (x*varsize);
00628       <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m6">variables</a> = (<font class="keyword">struct </font><a class="code" href="structvariable.html">variable</a> *) malloc(varsize);
00629       memcpy(subtree-&gt;<a class="code" href="structsubtree.html#m6">variables</a>, v, varsize);
00630       <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m7">variables_len</a> = 1;
00631       <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m8">variables_width</a> = varsize;
00632     }
00633 
00634     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m12">priority</a> = priority;
00635     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m13">timeout</a>  = timeout;
00636     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m10">session</a> = ss;
00637     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m11">flags</a> = (u_char)flags;
00638     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m20">cacheid</a> = -1;
00639 
00640     <font class="comment">/*  Since we're not really making use of this in the normal way:  */</font>
00641 
00642     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m17">range_subid</a> = 0;
00643     <a class="code" href="structsubtree.html">subtree</a>-&gt;<a class="code" href="structsubtree.html#m18">range_ubound</a> = 0;
00644 
00645     <font class="comment">/*</font>
00646      * load the subtree
00647      */
00648     rc = <a class="code" href="agent__registry_8c.html#a23">load_subtree</a>(<a class="code" href="structsubtree.html">subtree</a>, context);
00649     <font class="keywordflow">if</font> ((rc != <a class="code" href="agent__registry_8h.html#a0">MIB_REGISTERED_OK</a>)) {
00650       <a class="code" href="agent__registry_8h.html#a45">unregister_mib_context</a>(mibloc, mibloclen, priority, 
00651                              var_subid, numvars, context);
00652       <font class="keywordflow">return</font> rc;
00653     }
00654   }
00655 
00656   <font class="comment">/*</font>
00657    * fill out registration parameters
00658    */
00659   reg_parms.<a class="code" href="structregister__parameters.html#m0">name</a> = mibloc;
00660   reg_parms.<a class="code" href="structregister__parameters.html#m1">namelen</a> = mibloclen;
00661   reg_parms.<a class="code" href="structregister__parameters.html#m2">priority</a> = priority;
00662   reg_parms.<a class="code" href="structregister__parameters.html#m6">flags</a> = (u_char)flags;
00663   reg_parms.<a class="code" href="structregister__parameters.html#m3">range_subid</a>  = var_subid;
00664   reg_parms.<a class="code" href="structregister__parameters.html#m4">range_ubound</a> = (mibloc[var_subid-1] + numvars - 1);
00665   reg_parms.<a class="code" href="structregister__parameters.html#m5">timeout</a> = timeout;
00666   rc = snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, 1, &amp;reg_parms);
00667   <font class="keywordflow">return</font> rc;
00668 }
</pre></div>    </td>
  </tr>
</table>
<a name="a52" doxytag="agent_registry.h::register_readfd"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_readfd </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void(*&nbsp;</td>
          <td class="mdname">&nbsp; <em>func</em>)(int, void *), </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname">&nbsp; <em>data</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l01069">1069</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>01069                                                                    {
01070     <font class="keywordflow">if</font> (external_readfdlen &lt; <a class="code" href="agent__registry_8h.html#a8">NUM_EXTERNAL_FDS</a>) {
01071         external_readfd[external_readfdlen] = fd;
01072         external_readfdfunc[external_readfdlen] = func;
01073         external_readfd_data[external_readfdlen] = data;
01074         external_readfdlen++;
01075         DEBUGMSGTL((<font class="stringliteral">"register_readfd"</font>, <font class="stringliteral">"registered fd %d\n"</font>, fd));
01076         <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a9">FD_REGISTERED_OK</a>;
01077     } <font class="keywordflow">else</font> {
01078         snmp_log(LOG_CRIT, <font class="stringliteral">"register_readfd: too many file descriptors\n"</font>);
01079         <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a10">FD_REGISTRATION_FAILED</a>;
01080     }
01081 }
</pre></div>    </td>
  </tr>
</table>
<a name="a58" doxytag="agent_registry.h::register_signal"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_signal </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>sig</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void(*&nbsp;</td>
          <td class="mdname">&nbsp; <em>func</em>)(int)</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l01184">1184</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>01185 {
01186 
01187     <font class="keywordflow">switch</font> (sig) {
01188 <font class="preprocessor">#if defined(SIGCHLD)</font>
01189     <font class="keywordflow">case</font> SIGCHLD:
01190 <font class="preprocessor">#ifdef HAVE_SIGACTION</font>
01191         {
01192                 <font class="keyword">static</font> <font class="keyword">struct </font>sigaction act;
01193                 act.sa_handler = <a class="code" href="agent__registry_8c.html#a55">agent_SIGCHLD_handler</a>;
01194                 sigemptyset(&amp;act.sa_mask);
01195                 act.sa_flags = 0;
01196                 sigaction(SIGCHLD, &amp;act, NULL);
01197         }
01198 <font class="preprocessor">#else</font>
01199         signal(SIGCHLD, <a class="code" href="agent__registry_8c.html#a55">agent_SIGCHLD_handler</a>);
01200 <font class="preprocessor">#endif</font>
01201         <font class="keywordflow">break</font>;
01202 <font class="preprocessor">#endif</font>
01203     <font class="keywordflow">default</font>:
01204         snmp_log(LOG_CRIT,
01205                  <font class="stringliteral">"register_signal: signal %d cannot be handled\n"</font>, sig);
01206         <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a14">SIG_REGISTRATION_FAILED</a>;
01207     }
01208 
01209     external_signal_handler[sig] = func;
01210     external_signal_scheduled[sig] = 0;
01211     
01212     DEBUGMSGTL((<font class="stringliteral">"register_signal"</font>, <font class="stringliteral">"registered signal %d\n"</font>, sig));
01213     <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a13">SIG_REGISTERED_OK</a>;
01214 }
</pre></div>    </td>
  </tr>
</table>
<a name="a53" doxytag="agent_registry.h::register_writefd"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int register_writefd </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void(*&nbsp;</td>
          <td class="mdname">&nbsp; <em>func</em>)(int, void *), </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>void *&nbsp;</td>
          <td class="mdname">&nbsp; <em>data</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="agent__registry_8c-source.html#l01083">1083</a> of file <a class="el" href="agent__registry_8c-source.html">agent_registry.c</a>.<div class="fragment"><pre>01083                                                                     {
01084     <font class="keywordflow">if</font> (external_writefdlen &lt; <a class="code" href="agent__registry_8h.html#a8">NUM_EXTERNAL_FDS</a>) {
01085         external_writefd[external_writefdlen] = fd;
01086         external_writefdfunc[external_writefdlen] = func;
01087         external_writefd_data[external_writefdlen] = data;
01088         external_writefdlen++;
01089         DEBUGMSGTL((<font class="stringliteral">"register_writefd"</font>, <font class="stringliteral">"registered fd %d\n"</font>, fd));
01090         <font class="keywordflow">return</font> <a class="code" href="agent__registry_8h.html#a9">FD_REGISTERED_OK</a>;
01091     } <font class="keywordflow">else</font> {
01092         snmp_log(LOG_CRIT, <font class="stringliteral">"register_writefd: too many file descriptors\n"</font>);
01093         <font class="keywordflow">return</font> <a class="