#include "cms_cfg.hh"
#include "nml.hh"
#include "nmlmsg.hh"
#include "cms.hh"
#include "linklist.hh"
#include "rcs_prnt.hh"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for nmlclean.cc:
Go to the source code of this file.
Enumerations | |
enum | LOCAL_CONNECT { LC_NOT_ATTEMPTED = 0, LC_FAILED, LC_SUCCEEDED } |
enum | REMOTE_CONNECT { RC_NOT_ATTEMPTED = 0, RC_FAILED, RC_SUCCEEDED } |
Functions | |
int | main (int argc, char **argv) |
Variables | |
char | program_id [] = __FILE__ "version 1.2 compiled on" __DATE__ |
char | LC_ARRAY [3][3] = { "NA", "F", "S" } |
char | RC_ARRAY [3][3] = { "NA", "F", "S" } |
|
Definition at line 18 of file nmlclean.cc. 00019 { 00020 LC_NOT_ATTEMPTED = 0, 00021 LC_FAILED, 00022 LC_SUCCEEDED, 00023 }; |
|
Definition at line 27 of file nmlclean.cc. 00028 { 00029 RC_NOT_ATTEMPTED = 0, 00030 RC_FAILED, 00031 RC_SUCCEEDED, 00032 }; |
|
Definition at line 43 of file nmlclean.cc. 00045 { 00046 FILE *fp; 00047 LOCAL_CONNECT local_connect_status = LC_NOT_ATTEMPTED; 00048 REMOTE_CONNECT remote_connect_status = RC_NOT_ATTEMPTED; 00049 char proc_line[CMS_CONFIG_LINELEN]; 00050 char line[CMS_CONFIG_LINELEN]; 00051 int line_len, line_number = 0; 00052 char output_line[80]; 00053 char buffer_name[CMS_CONFIG_LINELEN]; 00054 char buffer_host[CMS_CONFIG_LINELEN]; 00055 RCS_LINKED_LIST *output_list; 00056 puts (program_id); 00057 00058 output_list = new RCS_LINKED_LIST; 00059 if (NULL == output_list) 00060 { 00061 printf ("Couldn`t malloc output list.\n"); 00062 exit (-1); 00063 } 00064 00065 set_rcs_print_destination (RCS_PRINT_TO_STDOUT); 00066 #ifndef VXWORKS 00067 char config_file[80]; 00068 char host_name[80]; 00069 if (argc > 2) 00070 { 00071 /* Get host_name and config_file from command line */ 00072 strcpy (config_file, argv[1]); 00073 strcpy (host_name, argv[2]); 00074 } 00075 else 00076 { 00077 /* Prompt user for config_file and host name */ 00078 printf ("Configuration File? "); 00079 gets (config_file); 00080 00081 printf ("Host Name? "); 00082 gets (host_name); 00083 } 00084 #endif 00085 00086 /* Open the configuration file. */ 00087 if ((fp = fopen (config_file, "r")) == NULL) 00088 { 00089 rcs_print_error ("nmltest: can't open '%s'\n", config_file); 00090 exit (-1); 00091 } 00092 00093 00094 /* Read the configuration file line by line to find buffers. */ 00095 while (!feof (fp)) 00096 { 00097 NML *lc_nml = (NML *) NULL; 00098 NML *rc_nml = (NML *) NULL; 00099 00100 if ((fgets (line, CMS_CONFIG_LINELEN, fp)) == NULL) 00101 { 00102 break; 00103 } 00104 00105 line_number++; 00106 line_len = strlen (line); 00107 if (line_len > CMS_CONFIG_LINELEN) 00108 { 00109 rcs_print_error 00110 ("cms_cfg: Line length of line number %d in %s exceeds max length of %d", 00111 line_number, config_file, CMS_CONFIG_LINELEN); 00112 } 00113 00114 if (line_len > 1) 00115 { 00116 if (line[line_len - 2] == '\\') 00117 { 00118 if ( 00119 (fgets 00120 (line + line_len - 2, CMS_CONFIG_LINELEN - line_len, 00121 fp)) == NULL) 00122 { 00123 break; 00124 } 00125 line_number++; 00126 } 00127 } 00128 00129 if (line[0] != 'B') 00130 { 00131 continue; 00132 } 00133 00134 sscanf (line + 1, "%s %*s %s", buffer_name, buffer_host); 00135 00136 /* Try to connect locally if the buffer host matches this one. */ 00137 00138 if (!strcmp (buffer_host, host_name)) 00139 { 00140 printf ("\nAttempting to connect to %s locally . . .\n", 00141 buffer_name); 00142 sprintf (proc_line, "P nmltest %s LOCAL %s R 0 5 0 0\n", 00143 buffer_name, buffer_host); 00144 lc_nml = new NML (line, proc_line); 00145 if (NULL != lc_nml) 00146 { 00147 lc_nml->ignore_format_chain = 1; 00148 if (NULL != lc_nml->cms) 00149 { 00150 lc_nml->cms->delete_totally = 1; 00151 delete lc_nml; 00152 lc_nml = (NML *) NULL; 00153 local_connect_status = LC_SUCCEEDED; 00154 } 00155 else 00156 { 00157 local_connect_status = LC_FAILED; 00158 } 00159 } 00160 else 00161 { 00162 local_connect_status = LC_FAILED; 00163 } 00164 } 00165 printf ("\nAttempting to connect to %s remotely . . .\n", buffer_name); 00166 sprintf (proc_line, "P nmltest %s REMOTE %s R 0 5 0 0\n", 00167 buffer_name, host_name); 00168 rc_nml = new NML (line, proc_line); 00169 if (NULL != rc_nml) 00170 { 00171 rc_nml->ignore_format_chain = 1; 00172 if (NULL != rc_nml->cms) 00173 { 00174 rc_nml->cms->delete_totally = 1; 00175 delete rc_nml; 00176 rc_nml = (NML *) NULL; 00177 remote_connect_status = RC_SUCCEEDED; 00178 } 00179 else 00180 { 00181 remote_connect_status = RC_FAILED; 00182 } 00183 } 00184 else 00185 { 00186 remote_connect_status = RC_FAILED; 00187 } 00188 sprintf (output_line, "%s\t%s\t%s", 00189 buffer_name, 00190 LC_ARRAY[local_connect_status], 00191 RC_ARRAY[remote_connect_status]); 00192 output_list->store_at_tail (output_line, strlen (output_line) + 1, 1); 00193 } 00194 00195 00196 /* Print a nice header. */ 00197 printf ("NMLCLEAN: terminology\n"); 00198 printf 00199 ("LCS - Local Connect Status S(Success)|F(Fail)|NA(Not Attempted)\n"); 00200 printf 00201 ("RCS - Remote Connect Status (What did you think RCS stood for?)\n"); 00202 printf ("NMLTEST: Summary\n"); 00203 printf ("BufferName\tLCS\tRCS\n"); 00204 00205 00206 00207 if (NULL != output_list) 00208 { 00209 char *next_line; 00210 next_line = (char *) output_list->get_head (); 00211 while (NULL != next_line) 00212 { 00213 puts (next_line); 00214 next_line = (char *) output_list->get_next (); 00215 } 00216 delete output_list; 00217 } 00218 00219 } |
|
Definition at line 2 of file nmlclean.cc. |
|
Definition at line 25 of file nmlclean.cc. |
|
Definition at line 34 of file nmlclean.cc. |