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)










