(file) Return to snmpDeliverTrap_emanate.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Handler / snmpIndicationHandler

Diff for /pegasus/src/Pegasus/Handler/snmpIndicationHandler/snmpDeliverTrap_emanate.cpp between version 1.13 and 1.22

version 1.13, 2003/08/06 13:45:17 version 1.22, 2006/01/30 16:17:54
Line 1 
Line 1 
 //%/////////////////////////////////////////////////////////////////////////////  //%2006////////////////////////////////////////////////////////////////////////
 // //
 // Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Company, IBM,  // Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development
 // The Open Group, Tivoli Systems  // Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems.
   // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation, The Open Group.
   // Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.;
   // IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; VERITAS Software Corporation; The Open Group.
   // Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.;
   // EMC Corporation; Symantec Corporation; The Open Group.
 // //
 // Permission is hereby granted, free of charge, to any person obtaining a copy // Permission is hereby granted, free of charge, to any person obtaining a copy
 // of this software and associated documentation files (the "Software"), to // of this software and associated documentation files (the "Software"), to
Line 29 
Line 37 
  
 #include <Pegasus/Common/System.h> #include <Pegasus/Common/System.h>
 #include <Pegasus/Common/ArrayInternal.h> #include <Pegasus/Common/ArrayInternal.h>
 #include <Pegasus/Common/Destroyer.h>  
 #include <Pegasus/Common/InternalException.h> #include <Pegasus/Common/InternalException.h>
 #include "snmpDeliverTrap_emanate.h" #include "snmpDeliverTrap_emanate.h"
  
   // l10n
   #include <Pegasus/Common/MessageLoader.h>
   
 // EMANATE specific declarations and entry points - MUST be in begining // EMANATE specific declarations and entry points - MUST be in begining
 // and outside NAMESPACE. // and outside NAMESPACE.
  
Line 41 
Line 51 
  
 #include <prnt_lib.h>  // MUST be at the end in include list. #include <prnt_lib.h>  // MUST be at the end in include list.
  
 static char *sr_filename = __FILE__;  static const char *sr_filename = __FILE__;
  
 IPCFunctionP IPCfp;  /* IPC functions pointer  */ IPCFunctionP IPCfp;  /* IPC functions pointer  */
  
Line 78 
Line 88 
  
 snmpDeliverTrap_emanate::snmpDeliverTrap_emanate() snmpDeliverTrap_emanate::snmpDeliverTrap_emanate()
 { {
       //
       // Initialize Subagent and establish comunication with the Master Agent
       //
       initialize();
 } }
  
 snmpDeliverTrap_emanate::~snmpDeliverTrap_emanate() snmpDeliverTrap_emanate::~snmpDeliverTrap_emanate()
 { {
       //
       // Close the connection to the Master Agent and shut down the
       // Subagent
       //
       EndSubagent();
 } }
  
  
Line 102 
Line 119 
  
     if(InitSubagent() == -1)     if(InitSubagent() == -1)
     {     {
         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
             _MSG_INITSUBAGENT_FAILED);        // l10n
   
         // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
         //   _MSG_INITSUBAGENT_FAILED);
   
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                       MessageLoaderParms(_MSG_INITSUBAGENT_FAILED_KEY,
                                                          _MSG_INITSUBAGENT_FAILED));
   
     }     }
 } }
  
   
 void snmpDeliverTrap_emanate::deliverTrap( void snmpDeliverTrap_emanate::deliverTrap(
         const String& trapOid,         const String& trapOid,
         const String& securityName,         const String& securityName,
Line 116 
Line 142 
         const Uint32& portNumber,         const Uint32& portNumber,
         const Uint16& snmpVersion,         const Uint16& snmpVersion,
         const String& engineID,         const String& engineID,
         Array<String>& vbOids,          const Array<String>& vbOids,
         Array<String>& vbTypes,          const Array<String>& vbTypes,
         Array<String>& vbValues)          const Array<String>& vbValues)
 { {
     VarBind *vbhead = NULL;     VarBind *vbhead = NULL;
     VarBind *vb = NULL;     VarBind *vb = NULL;
Line 126 
Line 152 
  
     OID     *object = NULL;     OID     *object = NULL;
  
     // Initialize with Master agent  
   
         initialize();  
   
     // Translate a string into an OID     // Translate a string into an OID
     OID *sendtrapOid = MakeOIDFromDot(trapOid.getCString());     OID *sendtrapOid = MakeOIDFromDot(trapOid.getCString());
  
     if (sendtrapOid == NULL)     if (sendtrapOid == NULL)
     {     {
         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                 _MSG_INVALID_TRAPOID);        // l10n
   
         // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
         // _MSG_INVALID_TRAPOID);
   
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                       MessageLoaderParms(_MSG_INVALID_KEY,
                                                          _MSG_INVALID_TRAPOID));
     }     }
  
     // Destination : convert targetHost into Transport     // Destination : convert targetHost into Transport
Line 154 
Line 183 
  
             if (ipAddr == NULL)             if (ipAddr == NULL)
             {             {
                 throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                     _MSG_DESTINATION_NOT_FOUND);                // l10n
   
                 // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                 //   _MSG_DESTINATION_NOT_FOUND);
   
                 throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_FAILED,
                                                MessageLoaderParms(_MSG_DESTINATION_NOT_FOUND_KEY,
                                                                   _MSG_DESTINATION_NOT_FOUND));
   
             }             }
             global_ti.t_ipAddr = inet_addr(trap_dest);             global_ti.t_ipAddr = inet_addr(trap_dest);
             break;             break;
Line 167 
Line 204 
         }         }
         default:         default:
         {         {
             throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED,  
                 _MSG_TARGETHOSTFORMAT_NOT_SUPPORTED);            // l10n
   
             // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED,
             // _MSG_TARGETHOSTFORMAT_NOT_SUPPORTED);
   
             throw PEGASUS_CIM_EXCEPTION_L (CIM_ERR_NOT_SUPPORTED,
                                            MessageLoaderParms(_MSG_TARGETHOSTFORMAT_NOT_SUPPORTED_KEY,
                                                               _MSG_TARGETHOSTFORMAT_NOT_SUPPORTED));
   
             break;             break;
         }         }
     }     }
Line 192 
Line 237 
  
     if (community_name == NULL)     if (community_name == NULL)
     {     {
         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
             _MSG_INVALID_SECURITY_NAME);        // l10n
   
         // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
         //   _MSG_INVALID_SECURITY_NAME);
   
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                       MessageLoaderParms(_MSG_INVALID_SECURITY_NAME_KEY,
                                                          _MSG_INVALID_SECURITY_NAME));
   
     }     }
  
     // getting IP address of the host     // getting IP address of the host
Line 217 
Line 270 
     if (!_isValidOctet(s1) || !_isValidOctet(s2) ||     if (!_isValidOctet(s1) || !_isValidOctet(s2) ||
         !_isValidOctet(s3) || !_isValidOctet(s4))         !_isValidOctet(s3) || !_isValidOctet(s4))
     {     {
         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
             _MSG_INVALID_OCTET_VALUE);        // l10n
   
         // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
         //   _MSG_INVALID_OCTET_VALUE);
   
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                     MessageLoaderParms(_MSG_INVALID_OCTET_VALUE_KEY,
                                                        _MSG_INVALID_OCTET_VALUE));
     }     }
  
     // create an empty 4 length OctetString     // create an empty 4 length OctetString
Line 227 
Line 287 
  
     if (agent_addr == NULL)     if (agent_addr == NULL)
     {     {
         throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
             _MSG_CREATE_OCTET_FAILED);        // l10n
   
         // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
         //   _MSG_CREATE_OCTET_FAILED);
   
         throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                       MessageLoaderParms(_MSG_CREATE_OCTET_FAILED_KEY,
                                                          _MSG_CREATE_OCTET_FAILED));
   
     }     }
  
     // fill in values for OctetString     // fill in values for OctetString
Line 317 
Line 385 
  
         if (enterpriseOid == NULL)         if (enterpriseOid == NULL)
         {         {
             throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                 _MSG_INVALID_ENTERPRISEOID);            // l10n
   
             // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
             //   _MSG_INVALID_ENTERPRISEOID);
   
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                           MessageLoaderParms(_MSG_INVALID_ENTERPRISEOID_KEY,
                                                              _MSG_INVALID_ENTERPRISEOID));
         }         }
     }     }
  
Line 330 
Line 405 
  
         if ((object = MakeOIDFromDot(_vbOid)) == NULL)         if ((object = MakeOIDFromDot(_vbOid)) == NULL)
         {         {
             throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                 _MSG_INVALID_PROPERTYOID);            // l10n
   
             // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
             //   _MSG_INVALID_PROPERTYOID);
   
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                           MessageLoaderParms(_MSG_INVALID_PROPERTYOID_KEY,
                                                              _MSG_INVALID_PROPERTYOID));
         }         }
  
         if (String::equalNoCase(vbTypes[i], "OctetString"))         if (String::equalNoCase(vbTypes[i], "OctetString"))
Line 341 
Line 423 
              value = CloneOctetString(MakeOctetStringFromText(_vbValue));              value = CloneOctetString(MakeOctetStringFromText(_vbValue));
              if (value == NULL)              if (value == NULL)
              {              {
                  throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                      _MSG_INVALID_PROPERTYVALUE);                 // l10n
   
                  // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                  //   _MSG_INVALID_PROPERTYVALUE);
   
                    throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                                  MessageLoaderParms(_MSG_INVALID_PROPERTYVALUE_KEY,
                                                                     _MSG_INVALID_PROPERTYVALUE));
              }              }
  
              if ((vb = MakeVarBindWithValue(object,              if ((vb = MakeVarBindWithValue(object,
Line 350 
Line 439 
                                         OCTET_PRIM_TYPE,                                         OCTET_PRIM_TYPE,
                                         value)) == NULL)                                         value)) == NULL)
             {             {
                  throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                      _MSG_MAKE_VARBIND_FAILED_FOR_OCTET_PRIM_TYPE);                // l10n
   
                 // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                 //    _MSG_MAKE_VARBIND_FAILED_FOR_OCTET_PRIM_TYPE);
   
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                               MessageLoaderParms(_MSG_MAKE_VARBIND_FAILED_FOR_OCTET_PRIM_TYPE_KEY,
                                                                  _MSG_MAKE_VARBIND_FAILED_FOR_OCTET_PRIM_TYPE));
             }             }
         }         }
         else if (String::equalNoCase(vbTypes[i], "OID"))         else if (String::equalNoCase(vbTypes[i], "OID"))
Line 359 
Line 455 
             void* value = MakeOIDFromDot(_vbValue);             void* value = MakeOIDFromDot(_vbValue);
             if (value == NULL)             if (value == NULL)
             {             {
                  throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,                // l10n
                      _MSG_INVALID_PROPERTYVALUE);  
                 // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                 //    _MSG_INVALID_PROPERTYVALUE);
   
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                               MessageLoaderParms(_MSG_INVALID_PROPERTYVALUE_KEY,
                                                                  _MSG_INVALID_PROPERTYVALUE));
   
             }             }
  
             if ((vb = MakeVarBindWithValue(object,             if ((vb = MakeVarBindWithValue(object,
Line 368 
Line 471 
                                         OBJECT_ID_TYPE,                                         OBJECT_ID_TYPE,
                                         value)) == NULL)                                         value)) == NULL)
             {             {
                  throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                      _MSG_MAKE_VARBIND_FAILED_FOR_OBJECT_ID_TYPE);                // l10n
   
                 // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                 //    _MSG_MAKE_VARBIND_FAILED_FOR_OBJECT_ID_TYPE);
   
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                               MessageLoaderParms(_MSG_MAKE_VARBIND_FAILED_FOR_OBJECT_ID_TYPE_KEY,
                                                                  _MSG_MAKE_VARBIND_FAILED_FOR_OBJECT_ID_TYPE));
             }             }
         }         }
         else         else
Line 379 
Line 489 
  
             if (value == NULL)             if (value == NULL)
             {             {
                  throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                      _MSG_INVALID_PROPERTYVALUE);                // l10n
   
                 // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                 //    _MSG_INVALID_PROPERTYVALUE);
   
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                               MessageLoaderParms(_MSG_INVALID_PROPERTYVALUE_KEY,
                                                                  _MSG_INVALID_PROPERTYVALUE));
             }             }
  
             if ((vb = MakeVarBindWithValue(object,             if ((vb = MakeVarBindWithValue(object,
Line 388 
Line 505 
                                         INTEGER_TYPE,                                         INTEGER_TYPE,
                                         value)) == NULL)                                         value)) == NULL)
             {             {
                  throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,  
                      _MSG_MAKE_VARBIND_FAILED_FOR_INTEGER_TYPE);                // l10n
   
                 // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_FAILED,
                 //    _MSG_MAKE_VARBIND_FAILED_FOR_INTEGER_TYPE);
   
                 throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_FAILED,
                                               MessageLoaderParms(_MSG_MAKE_VARBIND_FAILED_FOR_INTEGER_TYPE_KEY,
                                                                  _MSG_MAKE_VARBIND_FAILED_FOR_INTEGER_TYPE));
             }             }
         }         }
  
Line 449 
Line 573 
         }         }
         default:         default:
         {         {
             throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED,            // l10n
                 _MSG_VERSION_NOT_SUPPORTED);  
             // throw PEGASUS_CIM_EXCEPTION(CIM_ERR_NOT_SUPPORTED,
             // _MSG_VERSION_NOT_SUPPORTED);
   
             throw PEGASUS_CIM_EXCEPTION_L(CIM_ERR_NOT_SUPPORTED,
                                           MessageLoaderParms(_MSG_VERSION_NOT_SUPPORTED_KEY,
                                                              _MSG_VERSION_NOT_SUPPORTED));
   
             break;             break;
         }         }
     }     }
Line 478 
Line 609 
     struct hostent *targetHostInfo;     struct hostent *targetHostInfo;
     struct in_addr in;     struct in_addr in;
  
 #ifdef PEGASUS_OS_SOLARIS  #if defined(PEGASUS_OS_LINUX)
 #define HOSTENT_BUFF_SIZE       8192          char hostEntryBuffer[8192];
     char                        buf[HOSTENT_BUFF_SIZE];          struct hostent hostEntryStruct;
     struct hostent              h_result;          int hostEntryErrno;
     int                         h_errorp;  
     targetHostInfo=gethostbyname_r(hostName, &h_result, buff,          gethostbyname_r(
                                         HOSTENT_BUFF_SIZE, &h_errorp);              hostName,
               &hostEntryStruct,
               hostEntryBuffer,
               sizeof(hostEntryBuffer),
               &targetHostInfo,
               &hostEntryErrno);
   #elif defined(PEGASUS_OS_SOLARIS)
           char hostEntryBuffer[8192];
           struct hostent hostEntryStruct;
           int hostEntryErrno;
   
           targetHostInfo = gethostbyname_r(
               (char *)hostName,
               &hostEntryStruct,
               hostEntryBuffer,
               sizeof(hostEntryBuffer),
               &hostEntryErrno);
 #else #else
     targetHostInfo = gethostbyname(hostName);     targetHostInfo = gethostbyname(hostName);
 #endif #endif


Legend:
Removed from v.1.13  
changed lines
  Added in v.1.22

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2