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)










