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

Comparing projects/libstatgrab/src/saidar/saidar.c (file contents):
Revision 1.14 by ats, Fri Nov 7 18:25:55 2003 UTC vs.
Revision 1.25 by tdb, Wed Jan 21 10:27:46 2004 UTC

# Line 1 | Line 1
1   /*
2   * i-scream central monitoring system
3   * http://www.i-scream.org
4 < * Copyright (C) 2000-2002 i-scream
4 > * Copyright (C) 2000-2004 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
# Line 16 | Line 16
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 + * $Id$
21   */
22  
23   #ifdef HAVE_CONFIG_H
# Line 428 | Line 430 | int main(int argc, char **argv){
430          extern int optind;
431          int c;
432  
433 +        time_t last_update = 0;
434 +
435          WINDOW *window;
436  
437          extern int errno;
434        char ch;
438  
439          int delay=2;
440 < #ifdef ALLBSD
438 <        gid_t gid;
439 < #endif
440 >
441          statgrab_init();
442 < #ifdef ALLBSD
443 <        if((setegid(getgid())) != 0){
443 <                fprintf(stderr, "Failed to lose setgid'ness\n");
442 >        if(statgrab_drop_privileges() != 0){
443 >                fprintf(stderr, "Failed to drop setuid/setgid privileges\n");
444                  return 1;
445          }
446 #endif
446                  
447 <        while ((c = getopt(argc, argv, "vhd:")) != EOF){
447 >        while ((c = getopt(argc, argv, "vhd:")) != -1){
448                  switch (c){
449                          case 'd':
450                                  delay = atoi(optarg);
451 <                                if (delay == 0){
451 >                                if (delay < 1){
452                                          fprintf(stderr, "Time must be 1 second or greater\n");
453                                          exit(1);
454                                  }
456                                delay--;
455                                  break;
456                          case 'v':
457                                  version_num(argv[0]);  
# Line 463 | Line 461 | int main(int argc, char **argv){
461                                  usage(argv[0]);
462                                  return 1;
463                                  break;
466                                
464                  }
465          }
466  
# Line 485 | Line 482 | int main(int argc, char **argv){
482          display_headings();
483  
484          for(;;){
485 <                ch = getch();
485 >                time_t now;
486 >                int ch = getch();
487 >
488                  if (ch == 'q'){
489 <                        endwin();
491 <                        return 0;
489 >                        break;
490                  }
491  
492 <                get_stats();
492 >                /* To keep the numbers slightly accurate we do not want them
493 >                 * updating more frequently than once a second.
494 >                 */
495 >                now = time(NULL);
496 >                if ((now - last_update) >= 1) {
497 >                        get_stats();
498 >                }
499 >                last_update = now;
500  
501                  display_data();
497
498                /* To keep the numbers slightly accurate we do not want them updating more
499                 * frequently than once a second.
500                 */
501                sleep(1);
502          }      
503  
504          endwin();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines