#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. |
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001