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> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </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 </td><td valign=bottom><a class="el" href="structregister__parameters.html">register_parameters</a></td></tr>
<tr><td nowrap align=right valign=top>struct </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 </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 </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a0">MIB_REGISTERED_OK</a> 0</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a1">MIB_DUPLICATE_REGISTRATION</a> -1</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a2">MIB_REGISTRATION_FAILED</a> -2</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a3">MIB_UNREGISTERED_OK</a> 0</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a4">MIB_NO_SUCH_REGISTRATION</a> -1</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a5">MIB_UNREGISTRATION_FAILED</a> -2</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a6">DEFAULT_MIB_PRIORITY</a> 127</td></tr>
<tr><td nowrap align=right valign=top>#define </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 </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a8">NUM_EXTERNAL_FDS</a> 32</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a9">FD_REGISTERED_OK</a> 0</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a10">FD_REGISTRATION_FAILED</a> -2</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a11">FD_UNREGISTERED_OK</a> 0</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a12">FD_NO_SUCH_REGISTRATION</a> -1</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a13">SIG_REGISTERED_OK</a> 0</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a14">SIG_REGISTRATION_FAILED</a> -2</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a15">SIG_UNREGISTERED_OK</a> 0</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__registry_8h.html#a16">NUM_EXTERNAL_SIGS</a> 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> </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 </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> * </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> * </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> * </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 * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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> * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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> * </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> * </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 </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 </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 </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 </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 </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 </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(* </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(* </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(* </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 * </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 * </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 * </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 </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(* </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 127
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -1
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 0
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -2
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 0
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -1
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -1
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 0
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -2
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 0
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -2
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 32
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 32
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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">( </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 </td>
<td class="mdname1"> </td>
<td class="md">) </td>
<td class="md">
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 0
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 -2
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 0
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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>
</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">( </td>
<td class="md" nowrap>struct snmp_pdu * </td>
<td class="mdname1"> <em>pdu</em> </td>
<td class="md">) </td>
<td class="md"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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->flags & 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->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 &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">( </td>
<td class="md" nowrap>const oid * </td>
<td class="mdname"> <em>in_name1</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>len1</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const oid * </td>
<td class="mdname"> <em>in_name2</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>len2</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 < 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-- > 0){
00913 res = *(name1++) - *(name2++);
00914 <font class="keywordflow">if</font> (res < 0)
00915 <font class="keywordflow">return</font> -1;
00916 <font class="keywordflow">if</font> (res > 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 < 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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname1"> <em>context_name</em> </td>
<td class="md">) </td>
<td class="md"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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-><a class="code" href="structsubtree__context__cache__s.html#m2">next</a>) {
00080 <font class="keywordflow">if</font> (strcmp(ptr-><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-><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">( </td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>len</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> * </td>
<td class="mdname"> <em>subtree</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>context_name</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 && snmp_oid_compare(name, len, myptr-><a class="code" href="structsubtree.html#m4">end</a>, myptr-><a class="code" href="structsubtree.html#m5">end_len</a>) < 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">( </td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>len</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> * </td>
<td class="mdname"> <em>subtree</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>context_name</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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-><a class="code" href="structsubtree.html#m14">next</a>;
00957 <font class="keywordflow">while</font> ( myptr && (myptr-><a class="code" href="structsubtree.html#m6">variables</a> == NULL || myptr-><a class="code" href="structsubtree.html#m7">variables_len</a> == 0) )
00958 myptr = myptr-><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> && snmp_oid_compare(name, len, subtree-><a class="code" href="structsubtree.html#m2">start</a>, subtree-><a class="code" href="structsubtree.html#m3">start_len</a>) < 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">( </td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>len</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> * </td>
<td class="mdname"> <em>subtree</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>context_name</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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-><a class="code" href="structsubtree.html#m14">next</a>) {
00940 <font class="keywordflow">if</font> (snmp_oid_compare(name, len, myptr-><a class="code" href="structsubtree.html#m2">start</a>, myptr-><a class="code" href="structsubtree.html#m3">start_len</a>) < 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">( </td>
<td class="md" nowrap>struct <a class="el" href="structsubtree.html">subtree</a> * </td>
<td class="mdname1"> <em>st</em> </td>
<td class="md">) </td>
<td class="md"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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-><a class="code" href="structsubtree.html#m6">variables</a> != NULL &&
00811 snmp_oid_compare(st-><a class="code" href="structsubtree.html#m0">name</a>, st-><a class="code" href="structsubtree.html#m1">namelen</a>, st-><a class="code" href="structsubtree.html#m2">start</a>, st-><a class="code" href="structsubtree.html#m3">start_len</a>) == 0)<font class="keyword"> </font>{
00812 free(st-><a class="code" href="structsubtree.html#m6">variables</a>);
00813 st-><a class="code" href="structsubtree.html#m6">variables</a> = NULL;
00814 }
00815 <font class="keywordflow">if</font> (st-><a class="code" href="structsubtree.html#m14">next</a> != NULL) {
00816 ret = st-><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">( </td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>len</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>context_name</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 && myptr-><a class="code" href="structsubtree.html#m6">variables</a> == NULL )
00989 myptr = myptr-><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-><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">( </td>
<td class="md" nowrap>void </td>
<td class="mdname1"> </td>
<td class="md">) </td>
<td class="md"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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">( </td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>name</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t * </td>
<td class="mdname"> <em>namelen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct snmp_pdu * </td>
<td class="mdname"> <em>pdu</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>type</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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->flags & 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->version == SNMP_VERSION_1 && type == ASN_COUNTER64)
00851 <font class="keywordflow">return</font> VACM_NOTINVIEW;
00852 <font class="keywordflow">switch</font> (pdu->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 &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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>fd</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void(* </td>
<td class="mdname"> <em>func</em>)(int, void *), </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void * </td>
<td class="mdname"> <em>data</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 < <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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>moduleName</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> * </td>
<td class="mdname"> <em>var</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>varsize</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>numvars</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>mibloc</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>mibloclen</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>moduleName</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> * </td>
<td class="mdname"> <em>var</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>varsize</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>numvars</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>mibloc</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>mibloclen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>priority</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>range_subid</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid </td>
<td class="mdname"> <em>range_ubound</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct snmp_session * </td>
<td class="mdname"> <em>ss</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>context</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>timeout</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>flags</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>moduleName</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> * </td>
<td class="mdname"> <em>var</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>varsize</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>numvars</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>mibloc</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>mibloclen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>priority</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>moduleName</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> * </td>
<td class="mdname"> <em>var</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>varsize</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>numvars</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>mibloc</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>mibloclen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>priority</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>range_subid</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid </td>
<td class="mdname"> <em>range_ubound</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct snmp_session * </td>
<td class="mdname"> <em>ss</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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">( </td>
<td class="md" nowrap>void </td>
<td class="mdname1"> </td>
<td class="md">) </td>
<td class="md"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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-><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-><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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>moduleName</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct <a class="el" href="structvariable.html">variable</a> * </td>
<td class="mdname"> <em>var</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>varsize</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>numvars</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>mibloc</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>size_t </td>
<td class="mdname"> <em>mibloclen</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>priority</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>var_subid</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct snmp_session * </td>
<td class="mdname"> <em>ss</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>context</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>timeout</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>flags</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 < 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-><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>-><a class="code" href="structsubtree.html#m0">name</a>[var_subid - 1] += x;
00613 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m1">namelen</a> = (u_char) mibloclen;
00614
00615 memcpy(subtree-><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>-><a class="code" href="structsubtree.html#m2">start</a>[var_subid - 1] += x;
00617 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m3">start_len</a> = (u_char) mibloclen;
00618
00619 memcpy(subtree-><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>-><a class="code" href="structsubtree.html#m4">end</a>[var_subid - 1] += x;
00621 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m4">end</a>[mibloclen - 1]++;
00622 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m5">end_len</a> = (u_char) mibloclen;
00623
00624 memcpy(subtree-><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>-><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-><a class="code" href="structsubtree.html#m6">variables</a>, v, varsize);
00630 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m7">variables_len</a> = 1;
00631 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m8">variables_width</a> = varsize;
00632 }
00633
00634 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m12">priority</a> = priority;
00635 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m13">timeout</a> = timeout;
00636 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m10">session</a> = ss;
00637 <a class="code" href="structsubtree.html">subtree</a>-><a class="code" href="structsubtree.html#m11">flags</a> = (u_char)flags;
00638 <a class="code" href="structsubtree.html">subtree</a>-><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>-><a class="code" href="structsubtree.html#m17">range_subid</a> = 0;
00643 <a class="code" href="structsubtree.html">subtree</a>-><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, &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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>fd</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void(* </td>
<td class="mdname"> <em>func</em>)(int, void *), </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void * </td>
<td class="mdname"> <em>data</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 < <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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>sig</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void(* </td>
<td class="mdname"> <em>func</em>)(int)</td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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(&act.sa_mask);
01195 act.sa_flags = 0;
01196 sigaction(SIGCHLD, &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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>fd</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void(* </td>
<td class="mdname"> <em>func</em>)(int, void *), </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>void * </td>
<td class="mdname"> <em>data</em></td>
</tr>
<tr>
<td></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
<tr>
<td>
</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 < <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="