SNMP Subagent Programmer's Guide

Indexed Trap Generator
2-66 119728—SNMP Subagent Programmer’s Guide
Programming Tutorials
/*************************************************************************
* main - simple example of sending traps containing indexed variables
************************************************************************/
int
main(int argc,
char **argv)
...
{
Void *mgmt_env; /* handle to management API */
int card; /* index into managed table */
int port; /* index into managed table */
struct master master; /* managed table */
struct timeval wait; /* for periodic timeouts */
<-- 7
int status; /* return from system calls */
short term_fn = 0;
int count_read = 0;
char *buffer;
short error = 0;
short dummy = 0;
float tmp_a;
if (argc != 2)
{
(void) fprintf(stderr, "usage: run %s: $<agent>\n", argv[0]);
return(2);
}
/* initialize table to manage */
master.current_card = 1;
master.current_port = 1;
master.card_count = CARDS;
master.port_count = PORTS;
/* Create a bunch of table entries. We'll generate traps
* using the data in these tables. */
for (card = 0; card < CARDS; card++)
<-- 8
{
for (port = 0; port < PORTS; port++)
{
master.i[card][port].card = card + 1;
master.i[card][port].port = port + 1;
master.i[card][port].ratio.val = (char *)
master.i[card][port].ratio_space;
tmp_a = (card + 1.0000)/(port + 1.0000);
sprintf(master.i[card][port].ratio_space,
"%5.4f",tmp_a);
master.i[card][port].ratio.len =
strlen((char *)
master.i[card][port].ratio_space);
}
}
/* Prepare to be managed */
if ((mgmt_env = mgmt_init_env(argv[1],
<-- 9
(ObjId_t *) &GI_tblTrap,
"Indexed Trap Demo Sub-agent",
(Octets_t *) NULL,
NULL)) == NULL)
{
fprintf(stderr, "%s: mgmt_init_env failure\n", argv[0]);
return(2);
}
Example 2-13. Indexed Trap Generator Main Program and Next and Locator
Functions (page 2 of 5)