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)










