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

Comparing projects/cms/source/idar/idar.c (file contents):
Revision 1.15 by pajs, Thu Apr 10 12:31:19 2003 UTC vs.
Revision 1.21 by tdb, Fri Sep 26 21:22:43 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 26 | Line 26
26   #include <string.h>
27   #include <sys/types.h>
28   #include <sys/socket.h>
29 + #include <sys/ioctl.h>
30   #include <unistd.h>
31   #include <stdlib.h>
32   #include <ukcprog.h>
# Line 963 | Line 964 | void sig_winch_handler(int sig){
964          signal(SIGWINCH, sig_winch_handler);
965   }
966  
967 + void usage() {
968 +        printf("Usage: idar [-o order] [-s server] [-p port] [-l list] [-h]\n\n");
969 +        printf("  -o    Sets the initial sort order. Accepted arguments are one of:\n");
970 +        printf("            cpu load mem swap net disk\n");
971 +        printf("  -s    Specifies the i-scream server to connect to.\n");
972 +        printf("            default: %s\n", DEF_SERVER_NAME);
973 +        printf("  -p    Specifies the i-scream server port.\n");
974 +        printf("            default: %d\n", DEF_SERVER_PORT);
975 +        printf("  -l    Sets the list of hosts to monitor in a semi-colon separated list.\n");
976 +        printf("  -h    Displays this help information.\n");
977 +        printf("\nReport bugs to <%s>.\n", PACKAGE_BUGREPORT);
978 +        exit(1);
979 + }
980 +
981   int main(int argc, char **argv){
982          WINDOW *window;
983          fd_set infds;
# Line 974 | Line 989 | int main(int argc, char **argv){
989          char *machine_list=NULL;
990          char *response=NULL;
991  
992 <        char *servername;
992 >        char *server_name;
993          int server_control_port;
994          int server_data_port;
995  
# Line 1038 | Line 1053 | int main(int argc, char **argv){
1053  
1054          signal(SIGWINCH, sig_winch_handler);
1055  
1056 <        while((cmdopt=getopt(argc, argv, "s:"))  != -1){
1056 >        server_name=DEF_SERVER_NAME;
1057 >        server_control_port=DEF_SERVER_PORT;
1058 >
1059 >        while((cmdopt=getopt(argc, argv, "o:s:p:l:h"))  != -1){
1060                  switch(cmdopt){
1061 <                        case 's':
1061 >                        case 'o':
1062                                  if(!strcmp(optarg, "cpu")){
1063                                          sortby_ptr=cmp_cpu_used;
1064                                          strlcpy(display_config.sortby, CPU_USED, SORTBYMAXNAME);
# Line 1054 | Line 1072 | int main(int argc, char **argv){
1072                                          strlcpy(display_config.sortby, MEM, SORTBYMAXNAME);
1073                                  }
1074                                  if(!strcmp(optarg, "swap")){
1075 <                                        sortby_ptr=cmp_swap_used_pecent;
1076 <                                        strlcpy(display_config.sortby, SWAP, SORTBYMAXNAME);
1077 <                                }
1075 >                                        sortby_ptr=cmp_swap_used_pecent;
1076 >                                        strlcpy(display_config.sortby, SWAP, SORTBYMAXNAME);
1077 >                                }
1078 >                                if(!strcmp(optarg, "net")){
1079 >                                        sortby_ptr=cmp_network_io_total;
1080 >                                        strlcpy(display_config.sortby, NETIO, SORTBYMAXNAME);
1081 >                                }
1082 >                                if(!strcmp(optarg, "disk")){
1083 >                                        sortby_ptr=cmp_disk_io_total;
1084 >                                        strlcpy(display_config.sortby, DISKIO, SORTBYMAXNAME);
1085 >                                }
1086                                  if(sortby_ptr==NULL){
1087 <                                        errf("Invalid sort type");
1088 <                                        exit(1);
1087 >                                        errf("Invalid order given.");
1088 >                                        usage();
1089                                  }
1090 <                        break;
1090 >                                break;
1091 >                        case 's':
1092 >                                server_name=optarg;
1093 >                                break;
1094 >                        case 'p':
1095 >                                server_control_port=atoi(optarg);
1096 >                                break;
1097 >                        case 'l':
1098 >                                /* We've been passed a machine list */
1099 >                                /* list currently needs to be ; seperated */
1100 >                                machine_list=strdup(optarg);
1101 >                                break;
1102 >                        case 'h':
1103 >                        default:
1104 >                                usage();
1105 >                                break;
1106                  }
1107          }      
1108  
1109 +        /* Don't take any other arguments */
1110 +        if(argc>optind){
1111 +                usage();
1112 +        }
1113 +
1114          if(sortby_ptr==NULL){
1115                  sortby_ptr=cmp_cpu_used;
1116                  strlcpy(display_config.sortby, "CPU Used", SORTBYMAXNAME);
1117          }
1118  
1119 <        if(argc<(optind+2)){
1074 <                printf("Usage is %s <-d lines> hostname port <machine list>\n", argv[0]);
1075 <                exit(1);
1076 <        }
1077 <
1078 <        servername=argv[optind];
1079 <        server_control_port=atoi(argv[optind+1]);
1080 <
1081 <        control=create_tcp_connection(servername, server_control_port);
1119 >        control=create_tcp_connection(server_name, server_control_port);
1120          if(control==NULL){
1121                  errf("Failed to connect (%m)");
1122                  exit(1);
1123          }
1124  
1087        if(argc==4){
1088                /* We've been passed a machine list */
1089                /* list currently needs to be ; seperated */
1090                machine_list=strdup(argv[3]);
1091        }      
1092        
1125          if((tcp_comm(control, NULL, &response, "PROTOCOL 1.1"))!=0){
1126                  errf("Incorrect version number (%s)", response);
1127                  exit(1);
# Line 1122 | Line 1154 | int main(int argc, char **argv){
1154                  exit(1);
1155          }
1156  
1157 <        data=create_tcp_connection(servername, server_data_port);
1157 >        data=create_tcp_connection(server_name, server_data_port);
1158          if(data==NULL){
1159 <                errf("Failed to connect to host %s on port %d (%m)",servername, server_data_port);
1159 >                errf("Failed to connect to host %s on port %d (%m)",server_name, server_data_port);
1160                  exit(1);
1161          }
1162  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines