void SnmpTest::onEventSnmpReceiveTrap(QSharedPointer <SnmpTrapData> trapData) { //Variables declaration quint32 cntObj = 0; SnmpTrapData *snmpData = NULL; LogInfo << "Test received Trap"; if (trapData != NULL) LogInfo << trapData.data() << trapData; else throw SnmpException("SnmpData with NULL value in Trap management."); //Take snmp data snmpData = trapData.data(); LogInfo << "Received Snmp Trap" << endl << " [Enterprise Oid:" << snmpData->getEnterpriseOid() << "]" << endl << " [Agent Addr:" << snmpData->getAgentAddr() << "]" << endl << " [Specific Trap:" << snmpData->getAgentAddr() << "]"; //Process object list received from request Type::MSnmpObject map = snmpData->getValueList(); LogInfo << "Objects data:" << map.size(); for (Type::ISnmpObject iter = map.begin(); iter != map.end(); ++iter) { SnmpBasicAbstractType *value = static_cast<SnmpBasicAbstractType*>(iter.value()); LogInfo << " - Object [" << ++cntObj << "]:" << iter.key() << value->toString(); } }
void SnmpTest::onEventSnmpResponse(QSharedPointer <SnmpData> data) { //Variables declaration quint32 cntObj = 0; SnmpData *snmpData = NULL; LogInfo << "Test received response"; if (data != NULL) LogInfo << data.data() << data; else throw SnmpException("SnmpData with NULL value in Trap management."); //Take snmp data snmpData = data.data(); //Check error in response if (snmpData->getErrorMsg() == Type::RequestTimeout) { LogInfo << "Timeout in snmp request [Id:" << snmpData->getIdRequest() << "]"; //Process object list what they was requested QStringList objectList = snmpData->getObjectList(); LogInfo << "Expected objects:" << objectList.size(); for (int i = 0; i < objectList.size(); i++) { LogInfo << " - Oid [" << ++cntObj << "]:" << objectList.at(i); } } else { LogInfo << "Received Snmp response [Id:" << snmpData->getIdRequest() << "]"; //Process object list received from request Type::MSnmpObject map = snmpData->getValueList(); LogInfo << "Objects data:" << map.size(); for (Type::ISnmpObject iter = map.begin(); iter != map.end(); ++iter) { SnmpBasicAbstractType *value = static_cast<SnmpBasicAbstractType*>(iter.value()); LogInfo << " - Object [" << ++cntObj << "]:" << iter.key() << value->toString(); } } }
AbstractSyntaxNotationOne *Sequence::getDataType(int pos) const { if (sequenceData.size() < pos + 1) throw SnmpException("No such element"); return sequenceData.at(pos); }