SNMP Manager Programmer's Guide

Programming Examples
SNMP Manager Programmer’s Guide–134249
2-80
SNMPSET
/* Obtain buffer space for the packet */
need = 2000;
if ((buffp = (char *)SNMP_memory_alloc(need)) == 0)
return (-1);
EBufferSetup(BFL_IS_DYNAMIC, &ebuff, buffp, need);
/* Send request and receive response */
for (j = 0; j <= retrycnt; j++)
{
if (j == 0)
{
firstid = requestid;
} else
{
fprintf(stdout, "\n---RESENDING PACKET---\n");
/*
* PDU request ID is reset to 1 by setting
* requestid to 0 and then incrementing it
*/
if (requestid == MAX_REQID_VALUE)
requestid = 0;
send_pkt->pdu.std_pdu.request_id = ++requestid;
}
err2 = SNMP_WriteRead_ (&host_int, send_pkt, &rcvd_pkt, &ebuff, <-- 18
debug_level);
if (err2 != 0)
{
fprintf(stdout, "SNMP_WRITEREAD_ returned error %i (", err2);
fprintf(stdout, SNMP_FS_ErrMsg_ (err2, host_int.err_num));
fprintf(stdout, ")\n");
SNMP_Free(rcvd_pkt);
} else break;
} /* for (j = 0; j <= retrycnt; j++) */
if (j > retrycnt) exit(0);
SNMP_Free(send_pkt);
SNMP_Free(rcvd_pkt);
EBufferClean(&ebuff);
SNMP_Close_(&host_int);
return 0;
} /* main */
Example 2-9. Contents of snmpsetc (page 9 of 9)