# | 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 47 | 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 385 | 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 406 | 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); | |
409 | – | if(ihost_state->host_fqdn!=NULL) free(ihost_state->host_fqdn); |
411 | if(ihost_state->server_fqdn!=NULL) free(ihost_state->server_fqdn); | |
411 | – | 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; | |
415 | – | ihost_state->host_fqdn=host_fqdn; |
416 | – | 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 699 | 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 731 | 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 749 | Line 771 | int main(int argc, char **argv){ | |
771 | ihost_config.daemon=0; | |
772 | break; | |
773 | ||
752 | – | case 'h': |
753 | – | usage(argv[0]); |
754 | – | break; |
755 | – | |
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 | ||
766 | – | if(argc!=optind+2){ |
767 | – | usage(argv[0]); |
768 | – | exit(1); |
769 | – | } |
770 | – | |
771 | – | ihost_state.filtermanager_host=strdup(argv[optind]); |
772 | – | ihost_state.filtermanager_port=atoi(argv[optind+1]); |
773 | – | |
810 | if(gethostbyname(ihost_state.filtermanager_host)==NULL){ | |
811 | log_msg(LOG_CRIT, "Failed to lookup hostname. Please check settings"); | |
812 | exit(1); | |
# | Line 807 | 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 835 | 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); |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |