SNMP Manager Programmer's Guide
Programming Examples
SNMP Manager Programmer’s Guide–134249
2-106
SNMPTRAP
   case VT_STRING:
   case VT_OPAQUE:
   rcode = SNMP_Bind_String( send_pkt, i,
       base_oid.num_components,
       base_oid.component_list,
       (OCTET_T) asn1type,
       hexcheck(valstr[i]),
       (unsigned char*)valstr[i],
       /* buffer is static */ 1);
   break;
   case VT_EMPTY:
   rcode = SNMP_Bind_Null(send_pkt, i,
         base_oid.num_components,
         base_oid.component_list);
   break;
  } /* switch */
  if (rcode != 0)
  {
   fprintf(stderr, "Error binding value\n");
   exit(0);
  }
 } /* for (i = 0; i < oidcnt; i++) */
 EBufferInitialize(&ebuff); <--13
 rcode = SNMP_Encode_Packet(send_pkt, &ebuff);
 printf("\nSENDING PACKET:\n");
 print_pkt(send_pkt);
 SNMP_Free(send_pkt);
 memcpy (sndbuff, (void*) &dest, sizeof(dest));
 memcpy (sndbuff + sizeof(struct sockaddr_in), ebuff.start_bp,
   EBufferUsed(&ebuff));
 cbSend = sizeof(struct sockaddr_in) + EBufferUsed(&ebuff);
 if ((nStatus = t_sendto_nw(sd, (struct sendto_recvfrom_buf*) sndbuff,
   cbSend, 0 /* no flag */, 0)) == -1)
 {
  fprintf(stderr, "t_sendto_nw initiation failed\n");
  exit(0);
 }
 return 0;
} /* main */
Example 2-13. Contents of snmptrpc (page 10 of 10)










