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)