version 1.5, 2002/03/27 21:27:35
|
version 1.6, 2002/04/17 22:46:33
|
|
|
| |
// TRAP OID: getting trapOid | // TRAP OID: getting trapOid |
char* _trapOid = trapOid.allocateCString(); | char* _trapOid = trapOid.allocateCString(); |
|
_trapOid[strlen(_trapOid)-1] = '\0'; |
OID *sendtrapOid = MakeOIDFromDot(_trapOid); | OID *sendtrapOid = MakeOIDFromDot(_trapOid); |
| |
// Destination : converting destination into Transport | // Destination : converting destination into Transport |
|
|
} | } |
| |
char* _vbOid; | char* _vbOid; |
char* _vbType; |
|
char* _vbValue; | char* _vbValue; |
| |
for(Uint32 i = 0; i < vbOids.size(); i++) | for(Uint32 i = 0; i < vbOids.size(); i++) |
{ | { |
_vbOid = vbOids[i].allocateCString(); | _vbOid = vbOids[i].allocateCString(); |
_vbType = vbTypes[i].allocateCString(); |
|
_vbValue = vbValues[i].allocateCString(); | _vbValue = vbValues[i].allocateCString(); |
| |
if ((object = MakeOIDFromDot(_vbOid)) == NULL) | if ((object = MakeOIDFromDot(_vbOid)) == NULL) |
|
|
return; | return; |
} | } |
| |
if (strcmp(_vbType,"OctetString") == 0) |
if (vbTypes[i] == String("OctetString")) |
{ | { |
newValue = CloneOctetString(MakeOctetStringFromText(_vbValue)); | newValue = CloneOctetString(MakeOctetStringFromText(_vbValue)); |
if (newValue == NULL) | if (newValue == NULL) |
|
|
} | } |
else | else |
{ | { |
newValue = CloneOctetString(MakeOctetString( |
int vbvalue = atoi(_vbValue); |
(unsigned char *) _vbValue, strlen(_vbValue))); |
void* value = &vbvalue; |
| |
if (newValue == NULL) | if (newValue == NULL) |
{ | { |
|
|
if ((vb2 = MakeVarBindWithValue(object, | if ((vb2 = MakeVarBindWithValue(object, |
(OID *) NULL, | (OID *) NULL, |
INTEGER_TYPE, | INTEGER_TYPE, |
newValue)) == NULL) |
value)) == NULL) |
{ | { |
cout << "Invalid Integer Value: " << vbValues[i] << endl; | cout << "Invalid Integer Value: " << vbValues[i] << endl; |
return; | return; |
|
|
FreeOID(object); | FreeOID(object); |
} | } |
| |
delete [] _vbType; |
|
delete [] _vbValue; | delete [] _vbValue; |
delete [] _vbOid; | delete [] _vbOid; |
| |
vb3->next_var = NULL; | vb3->next_var = NULL; |
| |
// Now sending the trap | // Now sending the trap |
if (trapType == String("SNMPGeneric")) |
if (trapType == String("SNMPv1")) |
{ |
|
cout << genTrap << endl; |
|
cout << specTrap << endl; |
|
PrintVarBindList(vb); |
|
//PrintOID(enterpriseOid); |
|
cout << _trapOid << endl; |
|
cout << "Sending SNMP generic trap : " << trapOid << endl; |
|
|
|
do_trap(genTrap, specTrap, vb, enterpriseOid, _trapOid); |
|
|
|
FreeVarBindList(vb); |
|
FreeVarBindList(vb2); |
|
} |
|
else if (trapType == String("SNMPv1")) |
|
{ | { |
cout << "Sending SNMPv1 Trap : " << trapOid << endl; |
|
SendNotificationToDestSMIv1Params( | SendNotificationToDestSMIv1Params( |
1, // notifyType - TRAP | 1, // notifyType - TRAP |
genTrap, // genTrap | genTrap, // genTrap |
|
|
SR_SECURITY_MODEL_V1, // securityModel | SR_SECURITY_MODEL_V1, // securityModel |
&global_ti, // Transport Info | &global_ti, // Transport Info |
0); // cfg_chk | 0); // cfg_chk |
|
|
FreeVarBindList(vb); |
|
FreeVarBindList(vb2); |
|
} | } |
else if (trapType == String("SNMPv2")) | else if (trapType == String("SNMPv2")) |
{ | { |
cout << "Sending SNMPv2 Trap : " << trapOid << endl; |
|
SendNotificationToDestSMIv2Params( | SendNotificationToDestSMIv2Params( |
2, // notifyType - NOTIFICATION |
1, // notifyType - NOTIFICATION |
sendtrapOid, // snmpTrapOID | sendtrapOid, // snmpTrapOID |
agent_addr, // agent_addr | agent_addr, // agent_addr |
vb, // vb | vb, // vb |
|
|
exit(2); | exit(2); |
} | } |
| |
|
FreeVarBindList(vb); |
|
FreeVarBindList(vb2); |
|
FreeVarBindList(vb3); |
|
|
delete [] _trapOid; | delete [] _trapOid; |
} | } |
| |