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

 1 kumpf 1.1.2.1 //%/////////////////////////////////////////////////////////////////////////////
 2               //
 3               // Copyright (c) 2000, 2001 BMC Software, Hewlett Packard, IBM, The Open Group,
 4               // Tivoli Systems
 5               //
 6               // Permission is hereby granted, free of charge, to any person obtaining a copy
 7               // of this software and associated documentation files (the "Software"), to 
 8               // deal in the Software without restriction, including without limitation the 
 9               // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 
10               // sell copies of the Software, and to permit persons to whom the Software is
11               // furnished to do so, subject to the following conditions:
12               // 
13               // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN 
14               // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
15               // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
16               // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR 
17               // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
18               // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 
19               // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20               // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21               //
22 kumpf 1.1.2.1 //==============================================================================
23               //
24               // Author: Nitin Upasani, Hewlett-Packard Company (Nitin_Upasani@hp.com)
25               //
26               // Modified By:
27               //
28               //%/////////////////////////////////////////////////////////////////////////////
29               
30 sage  1.1.2.3 #include <Pegasus/Common/Config.h>
31 kumpf 1.1.2.1 #include <fcntl.h>
32               #include <unistd.h>
33               #include <sys/stat.h>
34               #include "snmpDeliverTrap_emanate.h"
35               
36               PEGASUS_NAMESPACE_BEGIN
37               
38               PEGASUS_USING_STD;
39               
40               void snmpDeliverTrap_emanate::deliverTrap(const String& trapOid,
41                   const String& enterprise,
42                   const String& destination,
43                   const String& trapType,
44                   Array<String>& vbOids,
45                   Array<String>& vbTypes,
46                   Array<String>& vbValues)
47               {
48                   int            fifo_fd;
49                   struct stat    sbuf;
50               
51                   trapHeader myTrapHeader;
52 kumpf 1.1.2.1     trapHeader myTrapData;
53               
54                   cout << "NITIN: calling deliverTrap()" << endl;
55               
56                   if (stat(_SNMP_FIFO, &sbuf) == -1) 
57                       cout << "The fifo is not opened by EMANATE subagent" << endl;
58                   else
59                   {
60                       if ((fifo_fd = open (_SNMP_FIFO, O_WRONLY|O_NONBLOCK)) == -1) 
61                           cout << "The fifo is not opened for reading. Subagent is not running" << endl;
62                       else
63                       {
64 kumpf 1.1.2.2             strcpy(myTrapHeader.destination, _CString(destination));
65 kumpf 1.1.2.1             strcpy(myTrapHeader.snmpType, "SNMPV2");
66 kumpf 1.1.2.2             strcpy(myTrapHeader.enterprise, _CString(enterprise));
67                           strcpy(myTrapHeader.trapOid, _CString(trapOid));
68 kumpf 1.1.2.1             myTrapHeader.variable_packets =  vbOids.size();
69               
70                           if (write(fifo_fd, &myTrapHeader, sizeof(myTrapHeader)) <=0)
71                               cout << "Error in writing" << endl;
72                           else
73                           {
74                               for(int packets = 0; packets<vbOids.size(); packets++)
75                               {
76                                   trapData myTrapData;
77 kumpf 1.1.2.2                     strcpy(myTrapData.vbOid, _CString(vbOids[packets]));
78                                   strcpy(myTrapData.vbType, _CString(vbTypes[packets]));
79                                   strcpy(myTrapData.vbValue, _CString(vbValues[packets]));
80 kumpf 1.1.2.1                     write(fifo_fd, &myTrapData, sizeof(myTrapData));
81                               }
82                           }
83                       }
84                       close (fifo_fd);
85                   }
86               }
87               
88               PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2