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> <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_trap.c File Reference</h1><code>#include <<a class="el" href="config_8h-source.html">config.h</a>></code><br>
<code>#include <unistd.h></code><br>
<code>#include <netdb.h></code><br>
<code>#include <stdlib.h></code><br>
<code>#include <string.h></code><br>
<code>#include <sys/time.h></code><br>
<code>#include <time.h></code><br>
<code>#include <sys/socket.h></code><br>
<code>#include <netinet/in.h></code><br>
<code>#include <getopt.h></code><br>
<code>#include <dmalloc.h></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 </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 </td><td valign=bottom><a class="el" href="agent__trap_8c.html#a0">SNMPV2_TRAPS_PREFIX</a> SNMP_OID_SNMPMODULES,1,1,5</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__trap_8c.html#a1">SNMPV2_TRAP_OBJS_PREFIX</a> SNMP_OID_SNMPMODULES,1,1,4</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__trap_8c.html#a2">SNMP_AUTHENTICATED_TRAPS_ENABLED</a> 1</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__trap_8c.html#a3">SNMP_AUTHENTICATED_TRAPS_DISABLED</a> 2</td></tr>
<tr><td nowrap align=right valign=top>#define </td><td valign=bottom><a class="el" href="agent__trap_8c.html#a4">MAX_ARGS</a> 128</td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>int </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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> * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 * </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 128
</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__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 SNMP_OID_SNMPMODULES,1,1,5
</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__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 SNMP_OID_SNMPMODULES,1,1,4
</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__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 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__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 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__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">( </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>int </td>
<td class="mdname"> <em>pdutype</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>confirm</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>version</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__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> *) &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-><a class="code" href="structtrap__sink.html#m0">sesp</a> = ss;
00152 new_sink-><a class="code" href="structtrap__sink.html#m2">pdutype</a> = pdutype;
00153 new_sink-><a class="code" href="structtrap__sink.html#m3">version</a> = version;
00154 new_sink-><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">( </td>
<td class="md" nowrap>struct variable_list * </td>
<td class="mdname"> <em>vars</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct snmp_pdu * </td>
<td class="mdname"> <em>template_pdu</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__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->next_variable ) {
00248 <font class="keywordflow">if</font> ( snmp_oid_compare( v->name, v->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->name, v->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->val.objid, OID_LENGTH(trap_prefix),
00265 trap_prefix, OID_LENGTH(trap_prefix)) == 0 )<font class="keyword"> </font>{
00266 template_pdu->trap_type = trap_v->val.objid[OID_LENGTH(trap_prefix)]-1;
00267 template_pdu->specific_type = 0;
00268 }
00269 <font class="keywordflow">else</font> {
00270 len = trap_v->val_len /<font class="keyword">sizeof</font>( oid );
00271 template_pdu->trap_type = 6; <font class="comment">/* enterprise specific */</font>
00272 template_pdu->specific_type = trap_v->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">( </td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>sink</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>u_short </td>
<td class="mdname"> <em>sinkport</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>com</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>version</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>pdutype</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__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 (&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 (&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>, &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">( </td>
<td class="md" nowrap>struct snmp_session * </td>
<td class="mdname1"> <em>ss</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__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-><a class="code" href="structtrap__sink.html#m0">sesp</a> == ss) {
00164 <font class="keywordflow">if</font> (prev) {
00165 prev-><a class="code" href="structtrap__sink.html#m1">next</a> = sp-><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-><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-><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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>trap</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>specific</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__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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>trap</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>specific</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>oid * </td>
<td class="mdname"> <em>enterprise</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>enterprise_length</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct variable_list * </td>
<td class="mdname"> <em>vars</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__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(&now, NULL);
00301 uptime = calculate_time_diff(&now, &starttime);
00302 memset (&uptime_var, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> variable_list));
00303 snmp_set_var_objid( &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( &uptime_var, (u_char *)&uptime, <font class="keyword">sizeof</font>(uptime) );
00305 uptime_var.type = ASN_TIMETICKS;
00306 uptime_var.next_variable = &snmptrap_var;
00307
00308 memset (&snmptrap_var, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> variable_list));
00309 snmp_set_var_objid( &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 = &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 && last_var->next_variable )
00321 last_var = last_var->next_variable;
00322
00323 memset (&enterprise_var, 0, <font class="keyword">sizeof</font> (<font class="keyword">struct</font> variable_list));
00324 snmp_set_var_objid( &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( &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 = &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( &enterprise_var, NULL, 0);
00339 <font class="keywordflow">return</font>;
00340 }
00341 template_pdu->trap_type = trap;
00342 template_pdu->specific_type = specific;
00343 <font class="keywordflow">if</font> ( snmp_clone_mem((<font class="keywordtype">void</font> **)&template_pdu->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( &enterprise_var, NULL, 0);
00347 <font class="keywordflow">return</font>;
00348 }
00349 template_pdu->enterprise_length = enterprise_length;
00350 template_pdu->flags |= UCD_MSG_FLAG_FORCE_PDU_COPY;
00351
00352 pdu_in_addr_t = (in_addr_t *)template_pdu->agent_addr;
00353 *pdu_in_addr_t = get_myaddr();
00354 template_pdu->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 && snmp_oid_compare(vars->name, vars->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 && snmp_oid_compare(vars->name, vars->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( &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( &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( &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( &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( &enterprise_var, NULL, 0);
00408 <font class="keywordflow">return</font>;
00409 }
00410 snmp_set_var_value( &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( &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( &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-><a class="code" href="structtrap__sink.html#m1">next</a> ) {
00440 <font class="keywordflow">if</font> ( sink-><a class="code" href="structtrap__sink.html#m3">version</a> == SNMP_VERSION_1 && trap == -1 )
00441 <font class="keywordflow">continue</font>; <font class="comment">/* Skip v1 sinks for v2 only traps */</font>
00442 template_pdu->command = sink-><a class="code" href="structtrap__sink.html#m2">pdutype</a>;
00443
00444 <font class="keywordflow">if</font> ( sink-><a class="code" href="structtrap__sink.html#m3">version</a> != SNMP_VERSION_1 ) {
00445 template_pdu->variables = v2_vars;
00446 <font class="keywordflow">if</font> ( last_var )
00447 last_var->next_variable = &enterprise_var;
00448 }
00449 <font class="keywordflow">else</font>
00450 template_pdu->variables = vars;
00451
00452 <a class="code" href="agent__trap_8h.html#a13">send_trap_to_sess</a>(sink-><a class="code" href="structtrap__sink.html#m0">sesp</a>, template_pdu);
00453
00454 <font class="keywordflow">if</font> ( sink-><a class="code" href="structtrap__sink.html#m3">version</a> != SNMP_VERSION_1 && last_var )
00455 last_var->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->variables = v2_vars;
00461 <font class="keywordflow">if</font> ( last_var )
00462 last_var->next_variable = &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->next_variable = NULL;
00469
00470 <font class="comment">/* v1 traps */</font>
00471 template_pdu->command = SNMP_MSG_TRAP;
00472 template_pdu->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( &enterprise_var, NULL, 0);
00479 snmp_set_var_value( &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->next_variable = NULL;
00483 template_pdu->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">( </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__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->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">( </td>
<td class="md" nowrap>struct snmp_session * </td>
<td class="mdname"> <em>sess</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct snmp_pdu * </td>
<td class="mdname"> <em>template_pdu</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__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->command, sess->version));
00498
00499 <font class="keywordflow">if</font> (sess->version == SNMP_VERSION_1 &&
00500 (template_pdu->command == SNMP_MSG_TRAP2 ||
00501 template_pdu->command == SNMP_MSG_INFORM))
00502 <font class="keywordflow">return</font>; <font class="comment">/* Skip v1 sinks for v2 only traps */</font>
00503 template_pdu->version = sess->version;
00504 pdu = snmp_clone_pdu( template_pdu );
00505 pdu->sessid = sess->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">( </td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>trap</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>int </td>
<td class="mdname"> <em>specific</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>struct variable_list * </td>
<td class="mdname"> <em>vars</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__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">( </td>
<td class="md" nowrap>struct variable_list * </td>
<td class="mdname1"> <em>vars</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__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">( </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__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">( </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__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>-><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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>token</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>cptr</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__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 < 1 || i > 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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>word</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>cptr</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__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 && pp) {
00638 sinkport = atoi(pp);
00639 <font class="keywordflow">if</font> ((sinkport < 1) || (sinkport > 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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>word</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>cptr</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__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 && pp) {
00611 sinkport = atoi(pp);
00612 <font class="keywordflow">if</font> ((sinkport < 1) || (sinkport > 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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>word</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>cptr</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__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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>word</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>cptr</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__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 && argn < <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, &session, <font class="stringliteral">"C:"</font>, trapOptProc);
00693 <font class="keywordflow">do</font> { free(argv[--argn]); } <font class="keywordflow">while</font> (argn > 0);
00694
00695 ss = snmp_open (&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>, &session);
00700 <font class="keywordflow">return</font>;
00701 }
00702
00703 <font class="keywordflow">if</font> (ss->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->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">( </td>
<td class="md" nowrap>const char * </td>
<td class="mdname"> <em>token</em>, </td>
</tr>
<tr>
<td></td>
<td></td>
<td class="md" nowrap>char * </td>
<td class="mdname"> <em>cptr</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__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 && pp) {
00583 sinkport = atoi(pp);
00584 <font class="keywordflow">if</font> ((sinkport < 1) || (sinkport > 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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>
</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>,
© 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