Code Search for Developers
 
 
  

agent__trap_8c.html from net-snmp at Krugle


Show agent__trap_8c.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_trap.c 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_trap.c File Reference</h1><code>#include &lt;<a class="el" href="config_8h-source.html">config.h</a>&gt;</code><br>
<code>#include &lt;unistd.h&gt;</code><br>
<code>#include &lt;netdb.h&gt;</code><br>
<code>#include &lt;stdlib.h&gt;</code><br>
<code>#include &lt;string.h&gt;</code><br>
<code>#include &lt;sys/time.h&gt;</code><br>
<code>#include &lt;time.h&gt;</code><br>
<code>#include &lt;sys/socket.h&gt;</code><br>
<code>#include &lt;netinet/in.h&gt;</code><br>
<code>#include &lt;getopt.h&gt;</code><br>
<code>#include &lt;dmalloc.h&gt;</code><br>
<code>#include "asn1.h"</code><br>
<code>#include "snmp_api.h"</code><br>
<code>#include "snmp_impl.h"</code><br>
<code>#include "snmp_client.h"</code><br>
<code>#include "snmp.h"</code><br>
<code>#include "system.h"</code><br>
<code>#include "read_config.h"</code><br>
<code>#include "snmp_debug.h"</code><br>
<code>#include "snmp_parse_args.h"</code><br>
<code>#include "<a class="el" href="agent__trap_8h-source.html">agent_trap.h</a>"</code><br>
<code>#include "callback.h"</code><br>
<code>#include "<a class="el" href="agent__callbacks_8h-source.html">agent_callbacks.h</a>"</code><br>
<code>#include "tools.h"</code><br>
<code>#include "snmp_logging.h"</code><br>
<code>#include "snmp_transport.h"</code><br>
<code>#include "<a class="el" href="mib__module__config_8h-source.html">mib_module_config.h</a>"</code><br>

<p>
<a href="agent__trap_8c-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="structtrap__sink.html">trap_sink</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__trap_8c.html#a0">SNMPV2_TRAPS_PREFIX</a>&nbsp;&nbsp;&nbsp;SNMP_OID_SNMPMODULES,1,1,5</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a1">SNMPV2_TRAP_OBJS_PREFIX</a>&nbsp;&nbsp;&nbsp;SNMP_OID_SNMPMODULES,1,1,4</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a2">SNMP_AUTHENTICATED_TRAPS_ENABLED</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__trap_8c.html#a3">SNMP_AUTHENTICATED_TRAPS_DISABLED</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__trap_8c.html#a4">MAX_ARGS</a>&nbsp;&nbsp;&nbsp;128</td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a27">add_trap_session</a> (struct snmp_session *ss, int pdutype, int confirm, int version)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a28">remove_trap_session</a> (struct snmp_session *ss)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a29">create_trap_session</a> (char *sink, u_short sinkport, char *com, int version, int pdutype)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a33">snmpd_free_trapsinks</a> (void)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a34">convert_v2_to_v1</a> (struct variable_list *vars, struct snmp_pdu *template_pdu)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a35">send_enterprise_trap_vars</a> (int trap, int specific, oid *enterprise, int enterprise_length, struct variable_list *vars)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a36">send_trap_to_sess</a> (struct snmp_session *sess, struct snmp_pdu *template_pdu)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a37">send_trap_vars</a> (int trap, int specific, struct variable_list *vars)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a38">send_easy_trap</a> (int trap, int specific)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a39">send_v2trap</a> (struct variable_list *vars)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a40">send_trap_pdu</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__trap_8c.html#a41">snmpd_parse_config_authtrap</a> (const char *token, char *cptr)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a42">snmpd_parse_config_trapsink</a> (const char *token, char *cptr)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a43">snmpd_parse_config_trap2sink</a> (const char *word, char *cptr)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a44">snmpd_parse_config_informsink</a> (const char *word, char *cptr)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a46">snmpd_parse_config_trapsess</a> (const char *word, char *cptr)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a47">snmpd_parse_config_trapcommunity</a> (const char *word, char *cptr)</td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a48">snmpd_free_trapcommunity</a> (void)</td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structtrap__sink.html">trap_sink</a> *&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a5">sinks</a> = NULL</td></tr>
<tr><td nowrap align=right valign=top>timeval&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a6">starttime</a></td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a7">objid_enterprisetrap</a> [] = { EXTENSIBLEMIB, 251 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a8">version_id</a> [] = { EXTENSIBLEMIB, AGENTID, OSTYPE }</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a9">enterprisetrap_len</a> = OID_LENGTH( <a class="el" href="agent__trap_8c.html#a7">objid_enterprisetrap</a> )</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a10">version_id_len</a> = OID_LENGTH( <a class="el" href="agent__trap_8c.html#a8">version_id</a> )</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a11">cold_start_oid</a> [] = { SNMPV2_TRAPS_PREFIX, 1 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a12">warm_start_oid</a> [] = { SNMPV2_TRAPS_PREFIX, 2 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a13">link_down_oid</a> [] = { SNMPV2_TRAPS_PREFIX, 3 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a14">link_up_oid</a> [] = { SNMPV2_TRAPS_PREFIX, 4 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a15">auth_fail_oid</a> [] = { SNMPV2_TRAPS_PREFIX, 5 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a16">egp_xxx_oid</a> [] = { SNMPV2_TRAPS_PREFIX, 99 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a17">snmptrap_oid</a> [] = { SNMPV2_TRAP_OBJS_PREFIX, 1, 0 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a> [] = { SNMPV2_TRAP_OBJS_PREFIX, 3, 0 }</td></tr>
<tr><td nowrap align=right valign=top>oid&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a19">sysuptime_oid</a> [] = { SNMP_OID_MIB2,1,3,0 }</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a20">snmptrap_oid_len</a> = OID_LENGTH(<a class="el" href="agent__trap_8c.html#a17">snmptrap_oid</a>)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a21">snmptrapenterprise_oid_len</a> = OID_LENGTH(<a class="el" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a>)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a22">sysuptime_oid_len</a> = OID_LENGTH(<a class="el" href="agent__trap_8c.html#a19">sysuptime_oid</a>)</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a23">snmp_enableauthentraps</a> = SNMP_AUTHENTICATED_TRAPS_DISABLED</td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="agent__trap_8c.html#a24">snmp_trapcommunity</a> = NULL</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a name="a4" doxytag="agent_trap.c::MAX_ARGS"></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 MAX_ARGS&nbsp;&nbsp;&nbsp;128
      </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__trap_8c-source.html#l00654">654</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a0" doxytag="agent_trap.c::SNMPV2_TRAPS_PREFIX"></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 SNMPV2_TRAPS_PREFIX&nbsp;&nbsp;&nbsp;SNMP_OID_SNMPMODULES,1,1,5
      </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__trap_8c-source.html#l00083">83</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a1" doxytag="agent_trap.c::SNMPV2_TRAP_OBJS_PREFIX"></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 SNMPV2_TRAP_OBJS_PREFIX&nbsp;&nbsp;&nbsp;SNMP_OID_SNMPMODULES,1,1,4
      </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__trap_8c-source.html#l00091">91</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="agent_trap.c::SNMP_AUTHENTICATED_TRAPS_DISABLED"></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 SNMP_AUTHENTICATED_TRAPS_DISABLED&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__trap_8c-source.html#l00101">101</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="agent_trap.c::SNMP_AUTHENTICATED_TRAPS_ENABLED"></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 SNMP_AUTHENTICATED_TRAPS_ENABLED&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__trap_8c-source.html#l00100">100</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a27" doxytag="agent_trap.c::add_trap_session"></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 add_trap_session </td>
          <td class="md">(&nbsp;</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>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>pdutype</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>confirm</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>version</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__trap_8c-source.html#l00129">129</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00130 {
00131     <font class="keywordflow">if</font> (snmp_callback_available(SNMP_CALLBACK_APPLICATION,
00132                                 <a class="code" href="agent__callbacks_8h.html#a8">SNMPD_CALLBACK_REGISTER_NOTIFICATIONS</a>) ==
00133         SNMPERR_SUCCESS)<font class="keyword"> </font>{
00134         <font class="comment">/* something else wants to handle notification registrations */</font>
00135         <font class="keyword">struct </font><a class="code" href="structagent__add__trap__args.html">agent_add_trap_args</a> args;
00136         DEBUGMSGTL((<font class="stringliteral">"add_trap_session"</font>,<font class="stringliteral">"adding callback trap sink\n"</font>));
00137         args.<a class="code" href="structagent__add__trap__args.html#m0">ss</a> = ss;
00138         args.<a class="code" href="structagent__add__trap__args.html#m1">confirm</a> = confirm;
00139         snmp_call_callbacks(SNMP_CALLBACK_APPLICATION,
00140                        <a class="code" href="agent__callbacks_8h.html#a8">SNMPD_CALLBACK_REGISTER_NOTIFICATIONS</a>,
00141                        (<font class="keywordtype">void</font> *) &amp;args);
00142     } <font class="keywordflow">else</font> {
00143         <font class="comment">/* no other support exists, handle it ourselves. */</font>
00144         <font class="keyword">struct </font><a class="code" href="structtrap__sink.html">trap_sink</a> *new_sink;
00145     
00146         DEBUGMSGTL((<font class="stringliteral">"add_trap_session"</font>,<font class="stringliteral">"adding internal trap sink\n"</font>));
00147         new_sink = (<font class="keyword">struct </font><a class="code" href="structtrap__sink.html">trap_sink</a> *) malloc (sizeof (*new_sink));
00148         <font class="keywordflow">if</font> ( new_sink == NULL )
00149             <font class="keywordflow">return</font> 0;
00150 
00151         new_sink-&gt;<a class="code" href="structtrap__sink.html#m0">sesp</a>    = ss;
00152         new_sink-&gt;<a class="code" href="structtrap__sink.html#m2">pdutype</a> = pdutype;
00153         new_sink-&gt;<a class="code" href="structtrap__sink.html#m3">version</a> = version;
00154         new_sink-&gt;<a class="code" href="structtrap__sink.html#m1">next</a>    = <a class="code" href="agent__trap_8c.html#a5">sinks</a>;
00155         <a class="code" href="agent__trap_8c.html#a5">sinks</a> = new_sink;
00156     }
00157     <font class="keywordflow">return</font> 1;
00158 }
</pre></div>    </td>
  </tr>
</table>
<a name="a34" doxytag="agent_trap.c::convert_v2_to_v1"></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 convert_v2_to_v1 </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>struct variable_list *&nbsp;</td>
          <td class="mdname">&nbsp; <em>vars</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct snmp_pdu *&nbsp;</td>
          <td class="mdname">&nbsp; <em>template_pdu</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__trap_8c-source.html#l00241">241</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.
<p>
Referenced by <a class="el" href="agent__trap_8c-source.html#l00283">send_enterprise_trap_vars</a>().
<p>
<div class="fragment"><pre>00242 {
00243     <font class="keyword">struct </font>variable_list *v, *trap_v=NULL, *ent_v=NULL;
00244     oid  trap_prefix[] = { <a class="code" href="agent__trap_8c.html#a0">SNMPV2_TRAPS_PREFIX</a> };
00245     <font class="keywordtype">int</font> len;
00246 
00247     <font class="keywordflow">for</font> ( v = vars ; v ; v = v-&gt;next_variable ) {
00248         <font class="keywordflow">if</font> ( snmp_oid_compare( v-&gt;name, v-&gt;name_length, 
00249                                <a class="code" href="agent__trap_8c.html#a17">snmptrap_oid</a>, OID_LENGTH(<a class="code" href="agent__trap_8c.html#a17">snmptrap_oid</a>)) == 0 )
00250                 trap_v = v;
00251         <font class="keywordflow">if</font> ( snmp_oid_compare( v-&gt;name, v-&gt;name_length, 
00252                                <a class="code" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a>,
00253                                OID_LENGTH(<a class="code" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a>)) == 0 )
00254                 ent_v = v;
00255     }
00256 
00257     <font class="keywordflow">if</font> ( !trap_v )
00258         <font class="keywordflow">return</font>;         <font class="comment">/* Can't find v2 snmpTrapOID varbind */</font>
00259 
00260                 <font class="comment">/*</font>
00261                  * Is this a 'standard' trap?
00262                  *  Or at least, does it have the correct prefix?
00263                  */
00264     <font class="keywordflow">if</font> ( snmp_oid_compare( trap_v-&gt;val.objid, OID_LENGTH(trap_prefix), 
00265                            trap_prefix,       OID_LENGTH(trap_prefix)) == 0 )<font class="keyword"> </font>{
00266         template_pdu-&gt;trap_type     = trap_v-&gt;val.objid[OID_LENGTH(trap_prefix)]-1;
00267         template_pdu-&gt;specific_type = 0;
00268     }
00269     <font class="keywordflow">else</font> {
00270         len = trap_v-&gt;val_len /<font class="keyword">sizeof</font>( oid );
00271         template_pdu-&gt;trap_type     = 6;        <font class="comment">/* enterprise specific */</font>
00272         template_pdu-&gt;specific_type = trap_v-&gt;val.objid[len-1];
00273     }
00274 
00275                 <font class="comment">/*</font>
00276                  *  TODO:
00277                  *    Extract the appropriate enterprise value from 'ent_v'
00278                  *    Remove uptime/trapOID varbinds from 'vars' list
00279                  */
00280     
00281 }
</pre></div>    </td>
  </tr>
</table>
<a name="a29" doxytag="agent_trap.c::create_trap_session"></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 create_trap_session </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>sink</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>u_short&nbsp;</td>
          <td class="mdname">&nbsp; <em>sinkport</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>com</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>version</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>pdutype</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__trap_8c-source.html#l00178">178</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00181 {
00182     <font class="keyword">struct </font>snmp_session  session, *sesp;
00183 
00184     memset (&amp;session, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> snmp_session));
00185     session.peername = sink;
00186     session.version = version;
00187     <font class="keywordflow">if</font> (com) {
00188         session.community = (u_char *)com;
00189         session.community_len = strlen (com);
00190     }
00191     session.remote_port = sinkport;
00192     sesp = snmp_open (&amp;session);
00193 
00194     <font class="keywordflow">if</font> (sesp) {
00195         <font class="keywordflow">return</font>( <a class="code" href="agent__trap_8h.html#a15">add_trap_session</a>( sesp, pdutype, (pdutype==SNMP_MSG_INFORM), version ));
00196     }
00197 
00198     <font class="comment">/* diagnose snmp_open errors with the input struct snmp_session pointer */</font>
00199     snmp_sess_perror(<font class="stringliteral">"snmpd: create_trap_session"</font>, &amp;session);
00200     <font class="keywordflow">return</font> 0;
00201 }
</pre></div>    </td>
  </tr>
</table>
<a name="a28" doxytag="agent_trap.c::remove_trap_session"></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 remove_trap_session </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>struct snmp_session *&nbsp;</td>
          <td class="mdname1">&nbsp; <em>ss</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__trap_8c-source.html#l00160">160</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00160                                                    {
00161     <font class="keyword">struct </font><a class="code" href="structtrap__sink.html">trap_sink</a> *sp = sinks, *prev = 0;
00162     <font class="keywordflow">while</font> (sp) {
00163         <font class="keywordflow">if</font> (sp-&gt;<a class="code" href="structtrap__sink.html#m0">sesp</a> == ss) {
00164             <font class="keywordflow">if</font> (prev) {
00165                 prev-&gt;<a class="code" href="structtrap__sink.html#m1">next</a> = sp-&gt;<a class="code" href="structtrap__sink.html#m1">next</a>;
00166             } <font class="keywordflow">else</font> {
00167                 <a class="code" href="agent__trap_8c.html#a5">sinks</a> = sp-&gt;<a class="code" href="structtrap__sink.html#m1">next</a>;
00168             }
00169             free_trap_session(sp);
00170             <font class="keywordflow">return</font> 1;
00171         }
00172         prev = sp;
00173         sp = sp-&gt;<a class="code" href="structtrap__sink.html#m1">next</a>;
00174     }
00175     <font class="keywordflow">return</font> 0;
00176 }
</pre></div>    </td>
  </tr>
</table>
<a name="a38" doxytag="agent_trap.c::send_easy_trap"></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 send_easy_trap </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>trap</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>specific</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__trap_8c-source.html#l00528">528</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00530 {
00531     <a class="code" href="agent__trap_8h.html#a3">send_trap_vars</a>( trap, specific, NULL );
00532 }
</pre></div>    </td>
  </tr>
</table>
<a name="a35" doxytag="agent_trap.c::send_enterprise_trap_vars"></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 send_enterprise_trap_vars </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>trap</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>specific</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>oid *&nbsp;</td>
          <td class="mdname">&nbsp; <em>enterprise</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>enterprise_length</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct variable_list *&nbsp;</td>
          <td class="mdname">&nbsp; <em>vars</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__trap_8c-source.html#l00283">283</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00287 {
00288     <font class="keyword">struct </font>variable_list uptime_var, snmptrap_var, enterprise_var;
00289     <font class="keyword">struct </font>variable_list *v2_vars, *last_var=NULL;
00290     <font class="keyword">struct </font>snmp_pdu     *template_pdu;
00291     <font class="keyword">struct </font>timeval       now;
00292     <font class="keywordtype">long</font> uptime;
00293     in_addr_t *pdu_in_addr_t;
00294     <font class="keyword">struct </font><a class="code" href="structtrap__sink.html">trap_sink</a> *sink;
00295     oid temp_oid[MAX_OID_LEN];
00296     
00297                 <font class="comment">/*</font>
00298                  * Initialise SNMPv2 required variables
00299                  */
00300     gettimeofday(&amp;now, NULL);
00301     uptime = calculate_time_diff(&amp;now, &amp;starttime);
00302     memset (&amp;uptime_var, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> variable_list));
00303     snmp_set_var_objid( &amp;uptime_var, <a class="code" href="agent__trap_8c.html#a19">sysuptime_oid</a>, OID_LENGTH(<a class="code" href="agent__trap_8c.html#a19">sysuptime_oid</a>));
00304     snmp_set_var_value( &amp;uptime_var, (u_char *)&amp;uptime, <font class="keyword">sizeof</font>(uptime) );
00305     uptime_var.type           = ASN_TIMETICKS;
00306     uptime_var.next_variable  = &amp;snmptrap_var;
00307 
00308     memset (&amp;snmptrap_var, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> variable_list));
00309     snmp_set_var_objid( &amp;snmptrap_var, <a class="code" href="agent__trap_8c.html#a17">snmptrap_oid</a>, OID_LENGTH(<a class="code" href="agent__trap_8c.html#a17">snmptrap_oid</a>));
00310         <font class="comment">/* value set later .... */</font>
00311     snmptrap_var.type           = ASN_OBJECT_ID;
00312     <font class="keywordflow">if</font> ( vars )
00313         snmptrap_var.next_variable  = vars;
00314     <font class="keywordflow">else</font>
00315         snmptrap_var.next_variable  = &amp;enterprise_var;
00316 
00317                         <font class="comment">/* find end of provided varbind list,</font>
00318                            ready to append the enterprise info if necessary */
00319     last_var = vars;
00320     <font class="keywordflow">while</font> ( last_var &amp;&amp; last_var-&gt;next_variable )
00321         last_var = last_var-&gt;next_variable;
00322 
00323     memset (&amp;enterprise_var, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> variable_list));
00324     snmp_set_var_objid( &amp;enterprise_var,
00325                  <a class="code" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a>, OID_LENGTH(<a class="code" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a>));
00326     snmp_set_var_value( &amp;enterprise_var, (u_char *)enterprise, enterprise_length*<font class="keyword">sizeof</font>(oid));
00327     enterprise_var.type           = ASN_OBJECT_ID;
00328     enterprise_var.next_variable  = NULL;
00329 
00330     v2_vars = &amp;uptime_var;
00331 
00332                 <font class="comment">/*</font>
00333                  *  Create a template PDU, ready for sending
00334                  */
00335     template_pdu = snmp_pdu_create( SNMP_MSG_TRAP );
00336     <font class="keywordflow">if</font> ( template_pdu == NULL ) {
00337                 <font class="comment">/* Free memory if value stored dynamically */</font>
00338         snmp_set_var_value( &amp;enterprise_var, NULL, 0);
00339         <font class="keywordflow">return</font>;
00340     }
00341     template_pdu-&gt;trap_type     = trap;
00342     template_pdu-&gt;specific_type = specific;
00343     <font class="keywordflow">if</font> ( snmp_clone_mem((<font class="keywordtype">void</font> **)&amp;template_pdu-&gt;enterprise,
00344                                 enterprise, enterprise_length*<font class="keyword">sizeof</font>(oid)))<font class="keyword"> </font>{
00345         snmp_free_pdu( template_pdu );
00346         snmp_set_var_value( &amp;enterprise_var, NULL, 0);
00347         <font class="keywordflow">return</font>;
00348     }
00349     template_pdu-&gt;enterprise_length = enterprise_length;
00350     template_pdu-&gt;flags |= UCD_MSG_FLAG_FORCE_PDU_COPY;
00351     
00352     pdu_in_addr_t = (in_addr_t *)template_pdu-&gt;agent_addr;
00353     *pdu_in_addr_t = get_myaddr();
00354     template_pdu-&gt;time = uptime;
00355 
00356                 <font class="comment">/*</font>
00357                  *  Now use the parameters to determine
00358                  *    which v2 variables are needed,
00359                  *    and what values they should take.
00360                  */
00361     <font class="keywordflow">switch</font> ( trap ) {
00362         <font class="keywordflow">case</font> -1:        <font class="comment">/*</font>
00363                          *      SNMPv2 only
00364                          *  Check to see whether the variables provided
00365                          *    are sufficient for SNMPv2 notifications
00366                          */
00367                 <font class="keywordflow">if</font> (vars &amp;&amp; snmp_oid_compare(vars-&gt;name, vars-&gt;name_length,
00368                                 <a class="code" href="agent__trap_8c.html#a19">sysuptime_oid</a>, OID_LENGTH(<a class="code" href="agent__trap_8c.html#a19">sysuptime_oid</a>)) == 0 )
00369                         v2_vars = vars;
00370                 <font class="keywordflow">else</font>
00371                 <font class="keywordflow">if</font> (vars &amp;&amp; snmp_oid_compare(vars-&gt;name, vars-&gt;name_length,
00372                                 <a class="code" href="agent__trap_8c.html#a17">snmptrap_oid</a>, OID_LENGTH(<a class="code" href="agent__trap_8c.html#a17">snmptrap_oid</a>)) == 0 )
00373                         uptime_var.next_variable = vars;
00374                 <font class="keywordflow">else</font> {
00375                         <font class="comment">/* Hmmm... we don't seem to have a value - oops! */</font>
00376                         snmptrap_var.next_variable = vars;
00377                 }
00378                 last_var = NULL;        <font class="comment">/* Don't need enterprise info */</font>
00379                 <a class="code" href="agent__trap_8c.html#a34">convert_v2_to_v1</a>( vars, template_pdu );
00380                 <font class="keywordflow">break</font>;
00381 
00382                         <font class="comment">/* "Standard" SNMPv1 traps */</font>
00383 
00384         <font class="keywordflow">case</font> SNMP_TRAP_COLDSTART:
00385                 snmp_set_var_value( &amp;snmptrap_var,
00386                                     (u_char *)<a class="code" href="agent__trap_8c.html#a11">cold_start_oid</a>,
00387                                     <font class="keyword">sizeof</font>(<a class="code" href="agent__trap_8c.html#a11">cold_start_oid</a>));
00388                 <font class="keywordflow">break</font>;
00389         <font class="keywordflow">case</font> SNMP_TRAP_WARMSTART:
00390                 snmp_set_var_value( &amp;snmptrap_var,
00391                                     (u_char *)<a class="code" href="agent__trap_8c.html#a12">warm_start_oid</a>,
00392                                     <font class="keyword">sizeof</font>(<a class="code" href="agent__trap_8c.html#a12">warm_start_oid</a>));
00393                 <font class="keywordflow">break</font>;
00394         <font class="keywordflow">case</font> SNMP_TRAP_LINKDOWN:
00395                 snmp_set_var_value( &amp;snmptrap_var,
00396                                     (u_char *)<a class="code" href="agent__trap_8c.html#a13">link_down_oid</a>,
00397                                     <font class="keyword">sizeof</font>(<a class="code" href="agent__trap_8c.html#a13">link_down_oid</a>));
00398                 <font class="keywordflow">break</font>;
00399         <font class="keywordflow">case</font> SNMP_TRAP_LINKUP:
00400                 snmp_set_var_value( &amp;snmptrap_var,
00401                                     (u_char *)<a class="code" href="agent__trap_8c.html#a14">link_up_oid</a>,
00402                                     <font class="keyword">sizeof</font>(<a class="code" href="agent__trap_8c.html#a14">link_up_oid</a>));
00403                 <font class="keywordflow">break</font>;
00404         <font class="keywordflow">case</font> SNMP_TRAP_AUTHFAIL:
00405                 <font class="keywordflow">if</font> (<a class="code" href="agent__trap_8c.html#a23">snmp_enableauthentraps</a> == <a class="code" href="agent__trap_8c.html#a3">SNMP_AUTHENTICATED_TRAPS_DISABLED</a>) {
00406                     snmp_free_pdu(template_pdu);
00407                     snmp_set_var_value( &amp;enterprise_var, NULL, 0);
00408                     <font class="keywordflow">return</font>;
00409                 }
00410                 snmp_set_var_value( &amp;snmptrap_var,
00411                                     (u_char *)<a class="code" href="agent__trap_8c.html#a15">auth_fail_oid</a>,
00412                                     <font class="keyword">sizeof</font>(<a class="code" href="agent__trap_8c.html#a15">auth_fail_oid</a>));
00413                 <font class="keywordflow">break</font>;
00414         <font class="keywordflow">case</font> SNMP_TRAP_EGPNEIGHBORLOSS:
00415                 snmp_set_var_value( &amp;snmptrap_var,
00416                                     (u_char *)<a class="code" href="agent__trap_8c.html#a16">egp_xxx_oid</a>,
00417                                     <font class="keyword">sizeof</font>(<a class="code" href="agent__trap_8c.html#a16">egp_xxx_oid</a>));
00418                 <font class="keywordflow">break</font>;
00419 
00420         <font class="keywordflow">case</font> SNMP_TRAP_ENTERPRISESPECIFIC:
00421                 memcpy( temp_oid,
00422                                     (<font class="keywordtype">char</font> *)enterprise,
00423                                     (enterprise_length)*<font class="keyword">sizeof</font>(oid));
00424                 temp_oid[ enterprise_length   ] = 0;
00425                 temp_oid[ enterprise_length+1 ] = specific;
00426                 snmp_set_var_value( &amp;snmptrap_var,
00427                                     (u_char *)temp_oid,
00428                                     (enterprise_length+2)*<font class="keyword">sizeof</font>(oid));
00429                 snmptrap_var.next_variable  = vars;
00430                 last_var = NULL;        <font class="comment">/* Don't need version info */</font>
00431                 <font class="keywordflow">break</font>;
00432     }
00433     
00434 
00435                 <font class="comment">/*</font>
00436                  *  Now loop through the list of trap sinks,
00437                  *   sending an appropriately formatted PDU to each
00438                  */
00439     <font class="keywordflow">for</font> ( sink = <a class="code" href="agent__trap_8c.html#a5">sinks</a> ; sink ; sink=sink-&gt;<a class="code" href="structtrap__sink.html#m1">next</a> ) {
00440         <font class="keywordflow">if</font> ( sink-&gt;<a class="code" href="structtrap__sink.html#m3">version</a> == SNMP_VERSION_1 &amp;&amp; trap == -1 )
00441                 <font class="keywordflow">continue</font>;       <font class="comment">/* Skip v1 sinks for v2 only traps */</font>
00442         template_pdu-&gt;command = sink-&gt;<a class="code" href="structtrap__sink.html#m2">pdutype</a>;
00443 
00444         <font class="keywordflow">if</font> ( sink-&gt;<a class="code" href="structtrap__sink.html#m3">version</a> != SNMP_VERSION_1 ) {
00445             template_pdu-&gt;variables = v2_vars;
00446             <font class="keywordflow">if</font> ( last_var )
00447                 last_var-&gt;next_variable = &amp;enterprise_var;
00448         }
00449         <font class="keywordflow">else</font>
00450             template_pdu-&gt;variables = vars;
00451 
00452         <a class="code" href="agent__trap_8h.html#a13">send_trap_to_sess</a>(sink-&gt;<a class="code" href="structtrap__sink.html#m0">sesp</a>, template_pdu);
00453 
00454         <font class="keywordflow">if</font> ( sink-&gt;<a class="code" href="structtrap__sink.html#m3">version</a> != SNMP_VERSION_1 &amp;&amp; last_var )
00455             last_var-&gt;next_variable = NULL;
00456     }
00457 
00458     <font class="comment">/* send stuff to registered callbacks */</font>
00459     <font class="comment">/* v2 traps/informs */</font>
00460     template_pdu-&gt;variables = v2_vars;
00461     <font class="keywordflow">if</font> ( last_var )
00462         last_var-&gt;next_variable = &amp;enterprise_var;
00463 
00464     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, <a class="code" href="agent__callbacks_8h.html#a7">SNMPD_CALLBACK_SEND_TRAP2</a>,
00465                         template_pdu);
00466     
00467     <font class="keywordflow">if</font> ( last_var )
00468         last_var-&gt;next_variable = NULL;
00469 
00470     <font class="comment">/* v1 traps */</font>
00471     template_pdu-&gt;command = SNMP_MSG_TRAP;
00472     template_pdu-&gt;variables = vars;
00473     
00474     snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, <a class="code" href="agent__callbacks_8h.html#a6">SNMPD_CALLBACK_SEND_TRAP1</a>,
00475                         template_pdu);
00476 
00477                 <font class="comment">/* Free memory if values stored dynamically */</font>
00478     snmp_set_var_value( &amp;enterprise_var, NULL, 0);
00479     snmp_set_var_value( &amp;snmptrap_var, NULL, 0);
00480         <font class="comment">/* Ensure we don't free anything we shouldn't */</font>
00481     <font class="keywordflow">if</font> ( last_var )
00482         last_var-&gt;next_variable = NULL;
00483     template_pdu-&gt;variables = NULL;
00484     snmp_free_pdu( template_pdu );
00485 }
</pre></div>    </td>
  </tr>
</table>
<a name="a40" doxytag="agent_trap.c::send_trap_pdu"></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 send_trap_pdu </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__trap_8c-source.html#l00540">540</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00541 {
00542     <a class="code" href="agent__trap_8h.html#a3">send_trap_vars</a>( -1, -1, pdu-&gt;variables );
00543 }
</pre></div>    </td>
  </tr>
</table>
<a name="a36" doxytag="agent_trap.c::send_trap_to_sess"></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 send_trap_to_sess </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>struct snmp_session *&nbsp;</td>
          <td class="mdname">&nbsp; <em>sess</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct snmp_pdu *&nbsp;</td>
          <td class="mdname">&nbsp; <em>template_pdu</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__trap_8c-source.html#l00489">489</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00490                                                       {
00491     <font class="keyword">struct </font>snmp_pdu *pdu;
00492 
00493     <font class="keywordflow">if</font> (!sess || !template_pdu)
00494         <font class="keywordflow">return</font>;
00495 
00496     DEBUGMSGTL((<font class="stringliteral">"send_trap_to_sess"</font>,<font class="stringliteral">"sending trap type=%d, version=%d\n"</font>,
00497                 template_pdu-&gt;command, sess-&gt;version));
00498     
00499     <font class="keywordflow">if</font> (sess-&gt;version == SNMP_VERSION_1 &amp;&amp;
00500         (template_pdu-&gt;command == SNMP_MSG_TRAP2 ||
00501          template_pdu-&gt;command == SNMP_MSG_INFORM))
00502         <font class="keywordflow">return</font>; <font class="comment">/* Skip v1 sinks for v2 only traps */</font>
00503     template_pdu-&gt;version = sess-&gt;version;
00504     pdu = snmp_clone_pdu( template_pdu );
00505     pdu-&gt;sessid = sess-&gt;sessid; <font class="comment">/* AgentX only ? */</font>
00506     <font class="keywordflow">if</font> ( snmp_send( sess, pdu) == 0 )<font class="keyword"> </font>{
00507         snmp_sess_perror (<font class="stringliteral">"snmpd: send_trap"</font>, sess);
00508         snmp_free_pdu( pdu );
00509     }
00510     <font class="keywordflow">else</font> {
00511         snmp_increment_statistic(STAT_SNMPOUTTRAPS);
00512         snmp_increment_statistic(STAT_SNMPOUTPKTS);
00513     }
00514 }
</pre></div>    </td>
  </tr>
</table>
<a name="a37" doxytag="agent_trap.c::send_trap_vars"></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 send_trap_vars </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>trap</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname">&nbsp; <em>specific</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>struct variable_list *&nbsp;</td>
          <td class="mdname">&nbsp; <em>vars</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__trap_8c-source.html#l00516">516</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00519 {
00520     <font class="keywordflow">if</font> ( trap == SNMP_TRAP_ENTERPRISESPECIFIC )
00521         <a class="code" href="agent__trap_8h.html#a4">send_enterprise_trap_vars</a>( trap, specific, <a class="code" href="agent__trap_8c.html#a7">objid_enterprisetrap</a>,
00522                         OID_LENGTH(<a class="code" href="agent__trap_8c.html#a7">objid_enterprisetrap</a>), vars );
00523     <font class="keywordflow">else</font>
00524         <a class="code" href="agent__trap_8h.html#a4">send_enterprise_trap_vars</a>( trap, specific, <a class="code" href="agent__trap_8c.html#a8">version_id</a>,
00525                         OID_LENGTH(<a class="code" href="agent__trap_8c.html#a8">version_id</a>), vars );
00526 }
</pre></div>    </td>
  </tr>
</table>
<a name="a39" doxytag="agent_trap.c::send_v2trap"></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 send_v2trap </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>struct variable_list *&nbsp;</td>
          <td class="mdname1">&nbsp; <em>vars</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__trap_8c-source.html#l00534">534</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00535 {
00536     <a class="code" href="agent__trap_8h.html#a3">send_trap_vars</a>( -1, -1, vars );
00537 }
</pre></div>    </td>
  </tr>
</table>
<a name="a48" doxytag="agent_trap.c::snmpd_free_trapcommunity"></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 snmpd_free_trapcommunity </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__trap_8c-source.html#l00718">718</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00719 {
00720     <font class="keywordflow">if</font> (snmp_trapcommunity) {
00721         free(<a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>);
00722         <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a> = NULL;
00723     }
00724 }
</pre></div>    </td>
  </tr>
</table>
<a name="a33" doxytag="agent_trap.c::snmpd_free_trapsinks"></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 snmpd_free_trapsinks </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__trap_8c-source.html#l00225">225</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00226 {
00227     <font class="keyword">struct </font><a class="code" href="structtrap__sink.html">trap_sink</a> *sp = sinks;
00228     <font class="keywordflow">while</font> (sp) {
00229         <a class="code" href="agent__trap_8c.html#a5">sinks</a> = <a class="code" href="agent__trap_8c.html#a5">sinks</a>-&gt;<a class="code" href="structtrap__sink.html#m1">next</a>;
00230         free_trap_session(sp);
00231         sp = <a class="code" href="agent__trap_8c.html#a5">sinks</a>;
00232     }
00233 }
</pre></div>    </td>
  </tr>
</table>
<a name="a41" doxytag="agent_trap.c::snmpd_parse_config_authtrap"></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 snmpd_parse_config_authtrap </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>token</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>cptr</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__trap_8c-source.html#l00553">553</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00555 {
00556     <font class="keywordtype">int</font> i;
00557 
00558     i = atoi(cptr);
00559     <font class="keywordflow">if</font> ( i == 0 ) {
00560         <font class="keywordflow">if</font> ( !strcmp( cptr, <font class="stringliteral">"enable"</font> ))
00561             i = <a class="code" href="agent__trap_8c.html#a2">SNMP_AUTHENTICATED_TRAPS_ENABLED</a>;
00562         <font class="keywordflow">else</font> <font class="keywordflow">if</font> ( !strcmp( cptr, <font class="stringliteral">"disable"</font> ))
00563             i = <a class="code" href="agent__trap_8c.html#a3">SNMP_AUTHENTICATED_TRAPS_DISABLED</a>;
00564     }
00565     <font class="keywordflow">if</font> (i &lt; 1 || i &gt; 2)
00566         config_perror(<font class="stringliteral">"authtrapenable must be 1 or 2"</font>);
00567     <font class="keywordflow">else</font>
00568         <a class="code" href="agent__trap_8c.html#a23">snmp_enableauthentraps</a> = i;
00569 }
</pre></div>    </td>
  </tr>
</table>
<a name="a44" doxytag="agent_trap.c::snmpd_parse_config_informsink"></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 snmpd_parse_config_informsink </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>word</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>cptr</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__trap_8c-source.html#l00627">627</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00628 {
00629     <font class="keywordtype">char</font> tmpbuf[1024];
00630     <font class="keywordtype">char</font> *sp, *cp, *pp = NULL;
00631     u_short sinkport;
00632   
00633     <font class="keywordflow">if</font> (!<a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>) <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a> = strdup(<font class="stringliteral">"public"</font>);
00634     sp = strtok(cptr, <font class="stringliteral">" \t\n"</font>);
00635     cp = strtok(NULL, <font class="stringliteral">" \t\n"</font>);
00636     <font class="keywordflow">if</font> (cp) pp = strtok(NULL, <font class="stringliteral">" \t\n"</font>);
00637     <font class="keywordflow">if</font> (cp &amp;&amp; pp) {
00638         sinkport = atoi(pp);
00639         <font class="keywordflow">if</font> ((sinkport &lt; 1) || (sinkport &gt; 0xffff)) {
00640             config_perror(<font class="stringliteral">"trapsink port out of range"</font>);
00641             sinkport = SNMP_TRAP_PORT;
00642         }
00643     } <font class="keywordflow">else</font> {
00644         sinkport = SNMP_TRAP_PORT;
00645     }
00646     <font class="keywordflow">if</font> (create_v2_inform_session(sp, sinkport,
00647                                  cp ? cp : <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>) == 0)<font class="keyword"> </font>{
00648         sprintf(tmpbuf,<font class="stringliteral">"cannot create informsink: %s"</font>, cptr);
00649         config_perror(tmpbuf);
00650     }
00651 }
</pre></div>    </td>
  </tr>
</table>
<a name="a43" doxytag="agent_trap.c::snmpd_parse_config_trap2sink"></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 snmpd_parse_config_trap2sink </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>word</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>cptr</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__trap_8c-source.html#l00600">600</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00601 {
00602     <font class="keywordtype">char</font> tmpbuf[1024];
00603     <font class="keywordtype">char</font> *sp, *cp, *pp = NULL;
00604     u_short sinkport;
00605   
00606     <font class="keywordflow">if</font> (!<a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>) <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a> = strdup(<font class="stringliteral">"public"</font>);
00607     sp = strtok(cptr, <font class="stringliteral">" \t\n"</font>);
00608     cp = strtok(NULL, <font class="stringliteral">" \t\n"</font>);
00609     <font class="keywordflow">if</font> (cp) pp = strtok(NULL, <font class="stringliteral">" \t\n"</font>);
00610     <font class="keywordflow">if</font> (cp &amp;&amp; pp) {
00611         sinkport = atoi(pp);
00612         <font class="keywordflow">if</font> ((sinkport &lt; 1) || (sinkport &gt; 0xffff)) {
00613             config_perror(<font class="stringliteral">"trapsink port out of range"</font>);
00614             sinkport = SNMP_TRAP_PORT;
00615         }
00616     } <font class="keywordflow">else</font> {
00617         sinkport = SNMP_TRAP_PORT;
00618     }
00619     <font class="keywordflow">if</font> (create_v2_trap_session(sp, sinkport,
00620                                cp ? cp : <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>) == 0)<font class="keyword"> </font>{
00621         sprintf(tmpbuf,<font class="stringliteral">"cannot create trap2sink: %s"</font>, cptr);
00622         config_perror(tmpbuf);
00623     }
00624 }
</pre></div>    </td>
  </tr>
</table>
<a name="a47" doxytag="agent_trap.c::snmpd_parse_config_trapcommunity"></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 snmpd_parse_config_trapcommunity </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>word</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>cptr</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__trap_8c-source.html#l00711">711</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00712 {
00713     <font class="keywordflow">if</font> (snmp_trapcommunity) free(<a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>);
00714     <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a> = (<font class="keywordtype">char</font> *)malloc (strlen(cptr)+1);
00715     copy_nword(cptr, <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>, strlen(cptr)+1);
00716 }
</pre></div>    </td>
  </tr>
</table>
<a name="a46" doxytag="agent_trap.c::snmpd_parse_config_trapsess"></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 snmpd_parse_config_trapsess </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>word</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>cptr</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__trap_8c-source.html#l00678">678</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00678                                                           {
00679     <font class="keywordtype">char</font> *argv[<a class="code" href="agent__trap_8c.html#a4">MAX_ARGS</a>];
00680     <font class="keywordtype">int</font> argn, arg;
00681     <font class="keyword">struct </font>snmp_session session, *ss;
00682 
00683     <font class="comment">/* inform or trap?  default to trap */</font>
00684     traptype = SNMP_MSG_TRAP2;
00685 
00686     <font class="comment">/* create the argv[] like array */</font>
00687     argv[0] = strdup(<font class="stringliteral">"snmpd-trapsess"</font>); <font class="comment">/* bogus entry for getopt() */</font>
00688     <font class="keywordflow">for</font>(argn = 1; cptr &amp;&amp; argn &lt; <a class="code" href="agent__trap_8c.html#a4">MAX_ARGS</a>; argn++) {
00689         argv[argn] = strdup(cptr); <font class="comment">/* more than enough room */</font>
00690     }
00691 
00692     arg = snmp_parse_args(argn, argv, &amp;session, <font class="stringliteral">"C:"</font>, trapOptProc);
00693     <font class="keywordflow">do</font> { free(argv[--argn]); } <font class="keywordflow">while</font> (argn &gt; 0);
00694 
00695     ss = snmp_open (&amp;session);
00696 
00697     <font class="keywordflow">if</font> (!ss) {
00698         config_perror(<font class="stringliteral">"snmpd: failed to parse this line"</font>);
00699         snmp_sess_perror(<font class="stringliteral">"snmpd: snmpd_parse_config_trapsess()"</font>, &amp;session);
00700         <font class="keywordflow">return</font>;
00701     }
00702     
00703     <font class="keywordflow">if</font> (ss-&gt;version == SNMP_VERSION_1) {
00704         <a class="code" href="agent__trap_8h.html#a15">add_trap_session</a>(ss, SNMP_MSG_TRAP, 0, SNMP_VERSION_1);
00705     } <font class="keywordflow">else</font> {
00706         <a class="code" href="agent__trap_8h.html#a15">add_trap_session</a>( ss, traptype, (traptype==SNMP_MSG_INFORM), ss-&gt;version );
00707     }
00708 }
</pre></div>    </td>
  </tr>
</table>
<a name="a42" doxytag="agent_trap.c::snmpd_parse_config_trapsink"></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 snmpd_parse_config_trapsink </td>
          <td class="md">(&nbsp;</td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>token</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname">&nbsp; <em>cptr</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__trap_8c-source.html#l00571">571</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.<div class="fragment"><pre>00573 {
00574     <font class="keywordtype">char</font> tmpbuf[1024];
00575     <font class="keywordtype">char</font> *sp, *cp, *pp = NULL;
00576     u_short sinkport;
00577     
00578     <font class="keywordflow">if</font> (!<a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>) <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a> = strdup(<font class="stringliteral">"public"</font>);
00579     sp = strtok(cptr, <font class="stringliteral">" \t\n"</font>);
00580     cp = strtok(NULL, <font class="stringliteral">" \t\n"</font>);
00581     <font class="keywordflow">if</font> (cp) pp = strtok(NULL, <font class="stringliteral">" \t\n"</font>);
00582     <font class="keywordflow">if</font> (cp &amp;&amp; pp) {
00583         sinkport = atoi(pp);
00584         <font class="keywordflow">if</font> ((sinkport &lt; 1) || (sinkport &gt; 0xffff)) {
00585             config_perror(<font class="stringliteral">"trapsink port out of range"</font>);
00586             sinkport = SNMP_TRAP_PORT;
00587         }
00588     } <font class="keywordflow">else</font> {
00589         sinkport = SNMP_TRAP_PORT;
00590     }
00591     <font class="keywordflow">if</font> (create_v1_trap_session(sp, sinkport,
00592                                cp ? cp : <a class="code" href="agent__trap_8c.html#a24">snmp_trapcommunity</a>) == 0)<font class="keyword"> </font>{
00593         sprintf(tmpbuf,<font class="stringliteral">"cannot create trapsink: %s"</font>, cptr);
00594         config_perror(tmpbuf);
00595     }
00596 }
</pre></div>    </td>
  </tr>
</table>
<hr><h2>Variable Documentation</h2>
<a name="a15" doxytag="agent_trap.c::auth_fail_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"> oid auth_fail_oid[] = { SNMPV2_TRAPS_PREFIX, 5 }
      </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__trap_8c-source.html#l00088">88</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a11" doxytag="agent_trap.c::cold_start_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"> oid cold_start_oid[] = { SNMPV2_TRAPS_PREFIX, 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__trap_8c-source.html#l00084">84</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a16" doxytag="agent_trap.c::egp_xxx_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"> oid egp_xxx_oid[] = { SNMPV2_TRAPS_PREFIX, 99 }
      </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__trap_8c-source.html#l00089">89</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a9" doxytag="agent_trap.c::enterprisetrap_len"></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 enterprisetrap_len = OID_LENGTH( <a class="el" href="agent__trap_8c.html#a7">objid_enterprisetrap</a> )
      </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__trap_8c-source.html#l00080">80</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="agent_trap.c::link_down_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"> oid link_down_oid[] = { SNMPV2_TRAPS_PREFIX, 3 }
      </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__trap_8c-source.html#l00086">86</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a14" doxytag="agent_trap.c::link_up_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"> oid link_up_oid[] = { SNMPV2_TRAPS_PREFIX, 4 }
      </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__trap_8c-source.html#l00087">87</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a7" doxytag="agent_trap.c::objid_enterprisetrap"></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"> oid objid_enterprisetrap[] = { EXTENSIBLEMIB, 251 }
      </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__trap_8c-source.html#l00078">78</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a5" doxytag="agent_trap.c::sinks"></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="structtrap__sink.html">trap_sink</a>* sinks = NULL
      </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__trap_8c-source.html#l00074">74</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a23" doxytag="agent_trap.c::snmp_enableauthentraps"></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 snmp_enableauthentraps = SNMP_AUTHENTICATED_TRAPS_DISABLED
      </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__trap_8c-source.html#l00103">103</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a24" doxytag="agent_trap.c::snmp_trapcommunity"></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"> char* snmp_trapcommunity = NULL
      </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__trap_8c-source.html#l00104">104</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a17" doxytag="agent_trap.c::snmptrap_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"> oid snmptrap_oid[] = { SNMPV2_TRAP_OBJS_PREFIX, 1, 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__trap_8c-source.html#l00092">92</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a20" doxytag="agent_trap.c::snmptrap_oid_len"></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 snmptrap_oid_len = OID_LENGTH(<a class="el" href="agent__trap_8c.html#a17">snmptrap_oid</a>)
      </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__trap_8c-source.html#l00095">95</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a18" doxytag="agent_trap.c::snmptrapenterprise_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"> oid snmptrapenterprise_oid[] = { SNMPV2_TRAP_OBJS_PREFIX, 3, 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__trap_8c-source.html#l00093">93</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a21" doxytag="agent_trap.c::snmptrapenterprise_oid_len"></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 snmptrapenterprise_oid_len = OID_LENGTH(<a class="el" href="agent__trap_8c.html#a18">snmptrapenterprise_oid</a>)
      </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__trap_8c-source.html#l00096">96</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a6" doxytag="agent_trap.c::starttime"></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 timeval starttime
      </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__trap_8c-source.html#l00076">76</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a19" doxytag="agent_trap.c::sysuptime_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"> oid sysuptime_oid[] = { SNMP_OID_MIB2,1,3,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__trap_8c-source.html#l00094">94</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a22" doxytag="agent_trap.c::sysuptime_oid_len"></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 sysuptime_oid_len = OID_LENGTH(<a class="el" href="agent__trap_8c.html#a19">sysuptime_oid</a>)
      </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__trap_8c-source.html#l00097">97</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a8" doxytag="agent_trap.c::version_id"></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"> oid version_id[] = { EXTENSIBLEMIB, AGENTID, OSTYPE }
      </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__trap_8c-source.html#l00079">79</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a10" doxytag="agent_trap.c::version_id_len"></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 version_id_len = OID_LENGTH( <a class="el" href="agent__trap_8c.html#a8">version_id</a> )
      </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__trap_8c-source.html#l00081">81</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<a name="a12" doxytag="agent_trap.c::warm_start_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"> oid warm_start_oid[] = { SNMPV2_TRAPS_PREFIX, 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__trap_8c-source.html#l00085">85</a> of file <a class="el" href="agent__trap_8c-source.html">agent_trap.c</a>.    </td>
  </tr>
</table>
<hr><address><small>Generated on Sat Nov 10 14:09:54 2001 for net-snmp by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.11 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>
<!--#include virtual="/sfbutton.html" -->
<!--#include virtual="/sfbutton.html" -->
<!-- CONTENT END -->
<!--#include virtual="/page-bottom.html" -->





See more files for this project here

net-snmp

net-snmp provides tools and libraries relating to the Simple Network\r\nManagement Protocol including: An extensible agent, An SNMP library,\r\ntools to request or set information from SNMP agents, tools to\r\ngenerate and handle SNMP traps, etc.\r\n

Project homepage: http://sourceforge.net/projects/net-snmp
Programming language(s): C,Perl,Shell Script
License: other

  mfd/
  acconfig_8h-source.html
  acconfig_8h.html
  agent_2snmp__perl_8c-source.html
  agent__callbacks_8h-source.html
  agent__callbacks_8h.html
  agent__handler_8c-source.html
  agent__handler_8c.html
  agent__handler_8h-source.html
  agent__handler_8h.html
  agent__index_8c-source.html
  agent__index_8c.html
  agent__index_8h-source.html
  agent__index_8h.html
  agent__module__config_8h-source.html
  agent__read__config_8c-source.html
  agent__read__config_8c.html
  agent__read__config_8h-source.html
  agent__read__config_8h.html
  agent__registry_8c-source.html
  agent__registry_8c.html
  agent__registry_8h-source.html
  agent__registry_8h.html
  agent__trap_8c-source.html
  agent__trap_8c.html
  agent__trap_8h-source.html
  agent__trap_8h.html
  all__helpers_8c-source.html
  all__helpers_8h-source.html
  annotated.html
  asn1_8c-source.html
  asn1_8h-source.html
  auto__nlist_8c-source.html
  auto__nlist_8c.html
  auto__nlist_8h-source.html
  auto__nlist_8h.html
  autonlist_8h-source.html
  autonlist_8h.html
  baby__steps_8c-source.html
  baby__steps_8h-source.html
  blah.html
  bulk__to__next_8c-source.html
  bulk__to__next_8h-source.html
  cache__handler_8c-source.html
  cache__handler_8h-source.html
  callback_8c-source.html
  callback_8h-source.html
  check__varbind_8c-source.html
  check__varbind_8h-source.html
  cmu__compat_8c-source.html
  cmu__compat_8h-source.html
  config_8h-source.html
  config_8h.html
  config__api_8h-source.html
  container_8c-source.html
  container_8h-source.html
  container__binary__array_8c-source.html
  container__binary__array_8h-source.html
  container__iterator_8c-source.html
  container__iterator_8h-source.html
  container__list__ssll_8c-source.html
  container__list__ssll_8h-source.html
  container__null_8c-source.html
  container__null_8h-source.html
  data__list_8c-source.html
  data__list_8h-source.html
  data__set_8c-example.html
  data__set_8c-source.html
  data__set_8h-source.html
  debug__handler_8c-source.html
  debug__handler_8h-source.html
  default__store_8c-source.html
  default__store_8h-source.html
  default_store.html
  definitions_8h-source.html
  delayed__instance_8c-example.html
  delayed__instance_8c-source.html
  delayed__instance_8h-source.html
  deprecated.html
  dir_000000.html
  dir_000001.html
  dir_000002.html
  dir_000003.html
  dir_000004.html
  dir_000005.html
  dir_000006.html
  dir_000007.html
  dir_000008.html
  doxygen.css
  doxygen.gif
  doxygen.png
  ds__agent_8h-source.html
  ds__agent_8h.html
  example_8c-source.html
  example_8h-source.html
  examples.html
  factory_8h-source.html
  fd__event__manager_8c-source.html
  fd__event__manager_8h-source.html
  file__utils_8c-source.html
  file__utils_8h-source.html