SNMP Manager Programmer's Guide

Programming Examples
SNMP Manager Programmer’s Guide–134249
2-91
SNMPWALK
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, <--10
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);
/* Modify the received packet into another get next */
/* Clean up the error fields if any. */
SNMP_Free(send_pkt); <--11
switch (rcvd_pkt->pdu.std_pdu.error_status) {
case NO_ERROR:
break;
case NO_SUCH_NAME:
printf("Reached the end. Invalid object provided.\n");
exit(0);
default:
printf("Unexpected error\n");
exit(0);
} /* switch error_status */
send_pkt = rcvd_pkt;
/*
* PDU request ID is reset to 1 by setting
* requestid to 0 and then incrementing it
*/
if (requestid == MAX_REQID_VALUE)
requestid = 0;
requestid++;
send_pkt->pdu_type = GET_NEXT_REQUEST_PDU;
send_pkt->pdu.std_pdu.request_id = requestid;
send_pkt->pdu.std_pdu.error_status = 0;
send_pkt->pdu.std_pdu.error_index = 0;
vbp = send_pkt->pdu.std_pdu.std_vbl.vblist;
switch (vbp->vb_data_flags_n_type) {
Example 2-11. Contents of snmpwlkc (page 6 of 7)