version 1.3, 2002/03/14 00:07:48
|
version 1.4, 2002/03/21 23:00:08
|
|
|
#include <ctype.h> | #include <ctype.h> |
#include <sys/stat.h> | #include <sys/stat.h> |
#include "snmpDeliverTrap_emanate.h" | #include "snmpDeliverTrap_emanate.h" |
|
#include "prnt_lib.h" |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
{ | { |
initialize(); | initialize(); |
| |
void* newValue; |
//void* newValue; |
|
OctetString* newValue; |
char* entV2Trap; | char* entV2Trap; |
int vb_link_flag = 0; | int vb_link_flag = 0; |
| |
VarBind *vb = NULL; | VarBind *vb = NULL; |
VarBind *vb2 = NULL; | VarBind *vb2 = NULL; |
|
VarBind *vb3 = NULL; |
| |
OID *object = NULL; | OID *object = NULL; |
| |
|
|
agent_addr->octet_ptr[2] = (unsigned char)s3; | agent_addr->octet_ptr[2] = (unsigned char)s3; |
agent_addr->octet_ptr[3] = (unsigned char)s4; | agent_addr->octet_ptr[3] = (unsigned char)s4; |
| |
// ATTN : Write code to get enterprise, genTrap and specTrap |
// ATTN-NU-20020312 : Write code to get enterprise, genTrap and |
// from trapOid. |
// specTrap from trapOid. |
|
|
// << 03-12-2002 : NU (HP) |
|
| |
String enterprise; | String enterprise; |
| |
|
|
// getting trapOid | // getting trapOid |
OID *sendtrapOid = MakeOIDFromDot(trapOid.allocateCString()); | OID *sendtrapOid = MakeOIDFromDot(trapOid.allocateCString()); |
| |
for(Uint8 i = 0; i < vbOids.size(); i++) |
for(Uint32 i = 0; i < vbOids.size(); i++) |
{ | { |
if ((object = MakeOIDFromDot(vbOids[i].allocateCString())) == NULL) | if ((object = MakeOIDFromDot(vbOids[i].allocateCString())) == NULL) |
{ | { |
|
|
| |
if (strcmp(vbTypes[i].allocateCString(),"OctetString") == 0) | if (strcmp(vbTypes[i].allocateCString(),"OctetString") == 0) |
{ | { |
newValue = MakeOctetStringFromText(vbValues[i].allocateCString()); |
newValue = CloneOctetString(MakeOctetStringFromText |
if ((vb = MakeVarBindWithValue(object, |
(vbValues[i].allocateCString())); |
|
if (newValue == NULL) |
|
{ |
|
cout << "Invalid Value provided : " << vbValues[i] << endl; |
|
return; |
|
} |
|
if ((vb2 = MakeVarBindWithValue(object, |
(OID *) NULL, | (OID *) NULL, |
OCTET_PRIM_TYPE, | OCTET_PRIM_TYPE, |
newValue)) == NULL) | newValue)) == NULL) |
|
|
} | } |
else | else |
{ | { |
newValue = MakeOctetString( |
newValue = CloneOctetString(MakeOctetString( |
(unsigned char *) vbValues[i].allocateCString(), | (unsigned char *) vbValues[i].allocateCString(), |
strlen(vbValues[i].allocateCString())); |
strlen(vbValues[i].allocateCString()))); |
| |
if ((vb = MakeVarBindWithValue(object, |
if (newValue == NULL) |
|
{ |
|
cout << "Invalid Value provided : " << vbValues[i] << endl; |
|
return; |
|
} |
|
if ((vb2 = MakeVarBindWithValue(object, |
(OID *) NULL, | (OID *) NULL, |
INTEGER_TYPE, | INTEGER_TYPE, |
newValue)) == NULL) | newValue)) == NULL) |
|
|
return; | return; |
} | } |
} | } |
|
if (i == 0) |
if (!vb_link_flag) |
|
{ | { |
vb_link_flag = 1; |
vb = vb2; |
vb2 = vb; |
vb3 = vb2; |
FreeOID(object); |
|
} | } |
else | else |
{ | { |
vb2->next_var = vb; |
vb3->next_var = vb2; |
vb2 = vb; |
vb3 = vb3->next_var; |
FreeOID(object); |
|
} | } |
|
|
|
FreeOID(object); |
} | } |
| |
vb_link_flag = 0; |
vb3->next_var = NULL; |
vb2->next_var = NULL; |
|
vb->next_var = NULL; |
|
| |
// Now sending the trap | // Now sending the trap |
if (trapType == String("SNMPGeneric")) | if (trapType == String("SNMPGeneric")) |
|
|
} | } |
else if (trapType == String("SNMPv1")) | else if (trapType == String("SNMPv1")) |
{ | { |
|
cout << "Sending SNMPv1 Trap : " << trapOid << endl; |
SendNotificationToDestSMIv1Params( | SendNotificationToDestSMIv1Params( |
1, // notifyType | 1, // notifyType |
6, // genTrap | 6, // genTrap |
|
|
} | } |
else if (trapType == String("SNMPv2")) | else if (trapType == String("SNMPv2")) |
{ | { |
|
cout << "Sending SNMPv2 Trap : " << trapOid << endl; |
SendNotificationToDestSMIv2Params( | SendNotificationToDestSMIv2Params( |
1, // notifyType | 1, // notifyType |
sendtrapOid, // snmpTrapOID | sendtrapOid, // snmpTrapOID |
agent_addr, // agent_addr | agent_addr, // agent_addr |
vb2, // vb |
//vb2, // vb |
|
vb, // vb |
NULL, // contextName | NULL, // contextName |
1, // retryCount | 1, // retryCount |
100, // timeout | 100, // timeout |