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.38 by pajs, Wed Mar 19 21:51:50 2003 UTC vs.
Revision 1.43 by tdb, Sun Oct 5 12:52:12 2003 UTC

# Line 1 | Line 1
1   /*
2   * i-scream central monitoring system
3 < * http://www.i-scream.org.uk
3 > * http://www.i-scream.org
4   * Copyright (C) 2000-2002 i-scream
5   *
6   * This program is free software; you can redistribute it and/or
# Line 31 | Line 31
31   #include <stdarg.h>
32   #include <errno.h>
33   #include <netdb.h>
34 + #include <netinet/in.h>
35  
36 < #include "ukcprog.h"
37 < #include "statgrab.h"
36 > #include <ukcprog.h>
37 > #include <statgrab.h>
38  
39   #define LOG_CRIT 0
40   #define LOG_ERR 1
# Line 46 | Line 47 | typedef struct{
47  
48          char *host_ip;
49          char *host_fqdn;
50 +        int preset_fqdn;
51 +        int preset_ip;
52  
53          char *server_fqdn;
54          int server_udp_port;
# Line 384 | Line 387 | int ihost_getconfig(ihost_state_t *ihost_state){
387                          goto error;
388                  }
389  
390 <                printf("string : %s\n", response_ptr);
390 >                /*printf("string : %s\n", response_ptr);*/
391                  server_udp_port=atoi(response_ptr);
392  
393                  if (server_udp_port==0){
# Line 405 | Line 408 | int ihost_getconfig(ihost_state_t *ihost_state){
408           * this already be NULL */
409          if(ihost_state->file_list!=NULL) free(ihost_state->file_list);
410          if(ihost_state->last_modified!=NULL) free(ihost_state->last_modified);
408        if(ihost_state->host_fqdn!=NULL) free(ihost_state->host_fqdn);
411          if(ihost_state->server_fqdn!=NULL) free(ihost_state->server_fqdn);
410        if(ihost_state->host_ip!=NULL) free(ihost_state->host_ip);
412  
413 +        if(ihost_state->preset_fqdn){
414 +                if(host_fqdn != NULL) free(host_fqdn);
415 +        }else{
416 +                if(ihost_state->host_fqdn!=NULL) free(ihost_state->host_fqdn);
417 +                ihost_state->host_fqdn=host_fqdn;
418 +        }
419 +
420 +        if(ihost_state->preset_ip){
421 +                if(host_ip != NULL) free(host_ip);
422 +        }else{
423 +                if(ihost_state->host_ip!=NULL) free(ihost_state->host_ip);
424 +                ihost_state->host_ip=host_ip;
425 +        }
426 +
427 +
428          ihost_state->file_list=file_list;
429          ihost_state->last_modified=last_modified;
414        ihost_state->host_fqdn=host_fqdn;
415        ihost_state->host_ip=host_ip;
430          ihost_state->server_fqdn=server_fqdn;
431          ihost_state->server_udp_port=server_udp_port;
432          ihost_state->udp_update_time=udp_update_time;
# Line 698 | Line 712 | too_big_error:
712  
713          
714   void usage(char *progname){
715 <        fprintf(stderr, "Usage %s [options] server port\n", progname);
716 <        fprintf(stderr, "Options\n");
717 <        fprintf(stderr, "  -v           Verbose mode,-vv would make even more verbose\n");
718 <        fprintf(stderr, "  -f           Foreground mode, print errors to stderr\n");
719 <        fprintf(stderr, "  -V           Print version number\n");
720 <        fprintf(stderr, "  -h           Prints this help page\n");
715 >        fprintf(stderr, "Usage %s [-v[v]] [-f] [-n name] [-i ip] [-s server] [-p port] [-V] [-h]\n\n", progname);
716 >        fprintf(stderr, "  -v    Verbose mode, -vv would make even more verbose\n");
717 >        fprintf(stderr, "  -f    Foreground mode, print errors to stderr\n");
718 >        fprintf(stderr, "  -n    Set the machine name to be reported as\n");
719 >        fprintf(stderr, "  -i    Set the IP to be reported as\n");
720 >        fprintf(stderr, "  -s    Specifies the i-scream server to connect to\n");
721 >        fprintf(stderr, "          default: %s\n", DEF_SERVER_NAME);
722 >        fprintf(stderr, "  -p    Specifies the i-scream server port\n");
723 >        fprintf(stderr, "          default: %d\n", DEF_SERVER_PORT);
724 >        fprintf(stderr, "  -V    Print version number\n");
725 >        fprintf(stderr, "  -h    Prints this help page\n");
726 >        fprintf(stderr, "\nReport bugs to <%s>.\n", PACKAGE_BUGREPORT);
727          exit(1);
728   }
729  
# Line 730 | Line 750 | int main(int argc, char **argv){
750          ihost_config.log=stderr;
751  
752          /* Blank ihost_state to default settings */
753 <        ihost_state.filtermanager_host=NULL;
753 >        ihost_state.filtermanager_host=DEF_SERVER_NAME;
754 >        ihost_state.filtermanager_port=DEF_SERVER_PORT;
755          ihost_state.host_fqdn=NULL;
756          ihost_state.host_ip=NULL;
757 +        ihost_state.preset_fqdn = 0;
758 +        ihost_state.preset_ip = 0;
759          ihost_state.server_fqdn=NULL;
760          ihost_state.file_list=NULL;
761          ihost_state.last_modified=NULL;
762  
763 <        while((cmdopt=getopt(argc, argv, "vfhV")) != -1){
763 >        while((cmdopt=getopt(argc, argv, "vfhVs:i:")) != -1){
764                  switch(cmdopt){
765                          case 'v':
766                                  ihost_config.verbose++;
# Line 748 | Line 771 | int main(int argc, char **argv){
771                                  ihost_config.daemon=0;
772                                  break;
773  
751                        case 'h':
752                                usage(argv[0]);
753                                break;
754
774                          case 'V':
775                                  fprintf(stderr, "%s version %s\n", argv[0], VERSION);
776                                  break;
777 +                        case 'n':
778 +                                ihost_state.preset_fqdn = 1;
779 +                                ihost_state.host_fqdn = strdup(optarg);
780 +                                if(ihost_state.host_fqdn == NULL){
781 +                                        fprintf(stderr, "Missing hostname\n");  
782 +                                        usage(argv[0]);
783 +                                }
784 +                                break;
785 +                        case 'i':
786 +                                /* Hmm.. Someone could set any string to be the IP, and it will let it */
787 +                                ihost_state.preset_ip = 1;
788 +                                ihost_state.host_ip = strdup(optarg);
789 +                                if(ihost_state.host_ip == NULL){
790 +                                        fprintf(stderr, "Missing ip\n");        
791 +                                        usage(argv[0]);
792 +                                }
793 +                                break;
794  
795 +                        case 's':
796 +                                ihost_state.filtermanager_host=strdup(optarg);
797 +                                break;
798 +
799 +                        case 'p':
800 +                                ihost_state.filtermanager_port=atoi(optarg);
801 +                                break;
802 +
803 +                        case 'h':
804                          default:
805                                  usage(argv[0]);
806                                  exit(1);
807                  }
808          }
809  
765        if(argc!=optind+2){
766                usage(argv[0]);
767                exit(1);
768        }
769
770        ihost_state.filtermanager_host=strdup(argv[optind]);
771        ihost_state.filtermanager_port=atoi(argv[optind+1]);
772        
810          if(gethostbyname(ihost_state.filtermanager_host)==NULL){
811                  log_msg(LOG_CRIT, "Failed to lookup hostname. Please check settings");
812                  exit(1);
# Line 806 | Line 843 | int main(int argc, char **argv){
843  
844          }
845  
846 <        log_msg(LOG_INFO, "Starting ihost");
846 >        log_msg(LOG_INFO, "Starting ihost...");
847          
848          log_msg(LOG_DEBUG,"Writing PID FILE");
849  
# Line 834 | Line 871 | int main(int argc, char **argv){
871                  sleep(10);
872          }
873  
874 <        printf("%s\n%d\n", ihost_state.server_fqdn, ihost_state.server_udp_port);
874 >        /*printf("%s\n%d\n", ihost_state.server_fqdn, ihost_state.server_udp_port);*/
875          while((create_udp_sockinfo(&udp_sockinfo, ihost_state.server_fqdn, ihost_state.server_udp_port))!=0){
876                  log_msg(LOG_ERR, "Failed to create udp socket");        
877                  sleep(10);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines