Exemple #1
0
int CSNMPMessage::ResendMessage()
{
  if (m_received)
  {
    // Don't bother to resend if we already have the response
    SetSendTime();
    return SNMP_CLASS_SUCCESS;
  }

  if (m_target->get_retry() <= 0)
  {
    // This message has timed out
    Callback(SNMP_CLASS_TIMEOUT);   // perform callback with the error

    return SNMP_CLASS_TIMEOUT;
  }

  m_target->set_retry(m_target->get_retry() - 1);
  SetSendTime();
  int status = send_snmp_request(m_socket, m_rawPdu, m_rawPduLen, *m_address);
  if (status != 0)
    return SNMP_CLASS_TL_FAILED;

  return SNMP_CLASS_SUCCESS;
}
int CSNMPMessage::ResendMessage()
{
  if (m_received)
  {
    // Don't bother to resend if we already have the response
    SetSendTime();
    return SNMP_CLASS_SUCCESS;
  }

  LOG_BEGIN(DEBUG_LOG | 10);
  LOG("MsgQueue: Message (msg id) (req id) (info)");
#ifdef _SNMPv3
  LOG(m_pdu.get_message_id());
#endif
  LOG(m_pdu.get_request_id());
  LOG((m_target->get_retry() <= 0) ? "TIMEOUT" : "RESEND");
  LOG_END;

  if (m_target->get_retry() <= 0)
  {
    // This message has timed out
    Callback(SNMP_CLASS_TIMEOUT);   // perform callback with the error

    return SNMP_CLASS_TIMEOUT;
  }

  m_target->set_retry(m_target->get_retry() - 1);
  SetSendTime();
  int status = send_snmp_request(m_socket, m_rawPdu, m_rawPduLen, *m_address);
  if (status != 0)
    return SNMP_CLASS_TL_FAILED;

  return SNMP_CLASS_SUCCESS;
}