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

Comparing projects/cms/source/ihost/ihost.c (file contents):
Revision 1.9 by pajs, Fri May 17 11:21:17 2002 UTC vs.
Revision 1.11 by tdb, Sat May 18 18:15:56 2002 UTC

# Line 1 | Line 1
1 + /*
2 + * i-scream central monitoring system
3 + * Copyright (C) 2000-2002 i-scream
4 + *
5 + * This program is free software; you can redistribute it and/or
6 + * modify it under the terms of the GNU General Public License
7 + * as published by the Free Software Foundation; either version 2
8 + * of the License, or (at your option) any later version.
9 + *
10 + * This program is distributed in the hope that it will be useful,
11 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 + * GNU General Public License for more details.
14 + *
15 + * You should have received a copy of the GNU General Public License
16 + * along with this program; if not, write to the Free Software
17 + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18 + */
19 +
20   #include <stdio.h>
21   #include <sys/socket.h>
22   #include <stdlib.h>
# Line 274 | Line 293 | int heartbeat(ihost_state_t *ihost_state){
293                  return -1;
294          }
295  
296 +        fflush(fm_fd_r);
297 +        fflush(fm_fd_w);
298 +
299          if(fclose(fm_fd_r) !=0){
300                  errf("Failed to close read FD (%m)");
301                  return -1;
# Line 362 | Line 384 | int send_stats(ihost_state_t *ihost_state, char *data_
384                  return -1;
385          }
386  
387 +        close(sd);
388 +
389          return 0;      
390   }
391  
# Line 369 | Line 393 | int main(int argc, char **argv){
393          ihost_state_t ihost_state;
394          int heartbeat_exit;
395          int counter=0;
396 <        long udp_time=0, tcp_time=0, cur_time=0;
396 >        long udp_time=0, tcp_time=0, stat_grab_time=0, cur_time=0;
397          int sleep_delay=0;
398          char *xml_stats;
399  
# Line 397 | Line 421 | int main(int argc, char **argv){
421                  exit(1);
422          }
423  
400        /* get starting stats */        
401        if((heartbeat(&ihost_state)) == -1){
402                errf("inital heartbeat failed (%m)");
403                exit(1);
404        }
405
406        
407        if((xml_stats=stat_grab(&ihost_state, counter)) == NULL){
408                errf("Failed to get stats (%m)");
409                exit(1);
410        }
411
412
424          for(;;){
425                  cur_time=time(NULL);
426                  if(cur_time>=tcp_time){
427 +                        /*printf("sending TCP\n");*/
428                          heartbeat_exit=heartbeat(&ihost_state);
429                          if(heartbeat_exit==RECONFIGURE_RETURN_CODE){
430 <                                errf("heartbeat needs to be reconfigured");
430 >                                /*errf("heartbeat needs to be reconfigured");*/
431                                  ihost_configure(&ihost_state);
432                                  /* So udp doesn't wait til next sending before updating */
433                                  udp_time=0;
# Line 426 | Line 438 | int main(int argc, char **argv){
438                          }
439                          tcp_time=time(NULL)+ihost_state.tcp_update_time;
440                  }
441 +
442                  if(cur_time>=udp_time){
443 <                        send_stats(&ihost_state, xml_stats);
444 <                        free(xml_stats);
443 >                        /*printf("sending UDP\n");*/
444 >                        stat_grab_time=time(NULL);
445                          if((xml_stats=stat_grab(&ihost_state, counter)) == NULL){
446                                  errf("Failed to get stats (%m)");
447                                  exit(1);
448                          }
449 <                        udp_time=time(NULL)+ihost_state.udp_update_time;
449 >                        stat_grab_time=time(NULL)-stat_grab_time;
450 >                        send_stats(&ihost_state, xml_stats);
451 >                        free(xml_stats);
452 >                        udp_time=time(NULL)+ihost_state.udp_update_time-stat_grab_time;
453                  }
454 <                if(tcp_time>udp_time){
455 <                        sleep_delay=time(NULL)-tcp_time;
454 >
455 >                if(tcp_time<udp_time){
456 >                        sleep_delay=tcp_time-time(NULL);
457                  }else{
458 <                        sleep_delay=time(NULL)-udp_time;
458 >                        sleep_delay=udp_time-time(NULL);
459                  }
460 <                sleep(sleep_delay);
460 >
461 >                /*printf("tcp epoc: %ld \t udp epoc: %ld\ntime:%ld \tsleeping: %d\n", tcp_time, udp_time, time(NULL), sleep_delay);*/
462 >                if(sleep_delay>0) sleep(sleep_delay);
463          }
464          return 0;
465   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines