ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/c++/Host.cpp
(Generate patch)

Comparing projects/cms/source/host/c++/Host.cpp (file contents):
Revision 1.2 by ab11, Mon Mar 5 12:40:32 2001 UTC vs.
Revision 1.7 by tdb, Tue May 21 16:47:11 2002 UTC

# Line 1 | Line 1
1 + /*
2 + * i-scream central monitoring system
3 + * http://www.i-scream.org.uk
4 + * Copyright (C) 2000-2002 i-scream
5 + *
6 + * This program is free software; you can redistribute it and/or
7 + * modify it under the terms of the GNU General Public License
8 + * as published by the Free Software Foundation; either version 2
9 + * of the License, or (at your option) any later version.
10 + *
11 + * This program is distributed in the hope that it will be useful,
12 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 + * GNU General Public License for more details.
15 + *
16 + * You should have received a copy of the GNU General Public License
17 + * along with this program; if not, write to the Free Software
18 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 + */
20 +
21   #include <iostream.h>
22   #include <unistd.h> // linux header for the sleep function
23   #include <stdlib.h> // itoa()
# Line 64 | Line 84 | int main(){
84                  if ( debug == 1 ){
85                          std::cout << "Using Default Tolerance\n";
86                  } // if
87 <                MaxFilterRetrys = 5;
87 >                MaxFilterRetrys = 1;
88          } // if
89          
90          
91 <        std::cout << "Configuring Alerter\n";
91 >        // std::cout << "Configuring Alerter\n";
92          // Set the values at which the Alerter should kick in. and how many packets it should
93          // send
94          
# Line 76 | Line 96 | int main(){
96          
97          std::cout << "Starting Data Collection\n";
98          // work out which is closer, the next heartbeat or the next data collection
99 <        long localTime = time(NULL);
99 >        int localTime = time(NULL);
100          // std::cout << "#";
101          int nextUDPTime = localTime + UDPUpdateTime;
102          int nextAveragerTime = localTime + AveragerUpdateTime;
103          int nextTCPTime = localTime + TCPUpdateTime;
104 <        long sequence = 0;
104 >        int sequence = 0;
105                  
106          int nextAction = 0;
107          while ( noErrors == 1){
# Line 127 | Line 147 | int main(){
147                                  } // if
148                                  MaxFilterRetrys = 5;
149                          } // if
150 <                        
150 >                        // reloadConfig is done now
151 >                        reloadConfig = 0;
152                  } // if reloadconfig
153                  
154                  
155 +                
156                  localTime = time(NULL);
135                //  std::cout << ".";
157                  // keep going while no non-fatal errors have occurred
158                  int waitTime = 0;
159                  
160                  if ( nextTCPTime  <= nextAveragerTime ){
140                        // std::cout << "-";
161                          if ( nextTCPTime >= nextUDPTime ){
142                                // std::cout << "}";
162                                  nextAction = 3;
163                                  waitTime = nextUDPTime - localTime;
164                          } else {
165                                  // set the heartbeat to be the next item
147                                // std::cout << "{";
166                                  nextAction = 1;
167                                  waitTime = nextTCPTime - localTime;
168                          } // if
169                  } else {
152                        // std::cout << "+";
170                          if ( nextAveragerTime >=  nextUDPTime ){
154                                // std::cout << "[";
171                                  nextAction = 3;
172                                  waitTime = nextUDPTime - localTime;
173                          } else {
174                                  // set grabstats to be in the next action
159                                // std::cout << "]";
175                                  nextAction = 2;
176                                  waitTime = nextAveragerTime - localTime;
177                          } // if
# Line 164 | Line 179 | int main(){
179                  
180                  // sleep until this time only if it is greater than 1!
181                  if ( waitTime >= 1 ){
182 <                        // need to output \n to std::cout or the wait is infinate!!!! ?????
168 <                        // will core dump if debug = 0
169 <                        sleep(waitTime); /// crashes here
182 >                        sleep(waitTime);
183                          
184                  }
185                  
# Line 202 | Line 215 | int main(){
215                                  
216                                  break;
217                          case 2: nextAveragerTime = localTime + AveragerUpdateTime;
218 +                                /*
219                                  if ( sysMon.collect() > 0 ){
220                                          // suggests that there should be an alert
221                                          std::cout << "Alert Status" << endl;                                    
222 <                                }
222 >                                    }*/
223                                  break;
224                          default: std::cout << "Scheduled UDP Connection" << endl;
225 +                             sysMon.collect();
226                                   nextUDPTime = localTime + UDPUpdateTime;
227                                   // package up the system data
228 <                                 string host = (config.getSmallNet())->getHostName();
229 <                                 string ip = (config.getSmallNet())->getHostIP();
228 >                                 string host = config.getFQDN();
229 >                                 // string ip = (config.getSmallNet())->getHostIP();
230                                  
231 <                                 char * buffer;
232 <                                 buffer = l64a( sequence );
233 <                                 char * seq = buffer;
234 <                                 buffer = l64a( localTime );
235 <                                 char * date = buffer;
236 <                                
237 <                                                                                                
238 <                                 string attributes = "type=\"data\" machine_name=\""+host+"\" ip=\""+ip+"\" date=\""+date+"\" seq_no=\""+seq+"\"";
231 >                                 string seq = "";
232 >                                 // char * buffer;
233 >                                 char buffer[32];
234 >                                 sprintf(buffer,"%u", sequence);
235 >                                 seq = buffer;
236 >                                 string date = "";
237 >                                 sprintf(buffer,"%u", localTime);
238 >                                 date = buffer;
239 >                         string attributes = "type=\"data\" machine_name=\""+host+"\" ip=\"0.0.0.0\" date=\""+date+"\" seq_no=\""+seq+"\"";
240  
241                                   XMLFormatter xml("packet",attributes);
242                                   // put in the data
243                                   xml.addString(sysMon.getData());
244                                   (config.getSmallNet())->sendUPDPacket(config.getUDPFilterName(), config.getUDPFilterPort(), xml.returnXML());
245 <                                
245 >                                 // now clear the averaged data
246 >                                 sysMon.clearData();
247 >                                 sequence++;
248                                   break;
249                  } // switch
250                  
# Line 240 | Line 258 | int main(){
258          
259          return 0;
260          
261 < } // main
261 > } // main

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines