diff options
-rw-r--r-- | doc/ChangeLog | 4 | ||||
-rw-r--r-- | doc/vtysh.1 | 17 | ||||
-rw-r--r-- | vtysh/ChangeLog | 11 | ||||
-rw-r--r-- | vtysh/vtysh.c | 1 | ||||
-rw-r--r-- | vtysh/vtysh.h | 2 | ||||
-rw-r--r-- | vtysh/vtysh_config.c | 38 | ||||
-rw-r--r-- | vtysh/vtysh_main.c | 18 |
7 files changed, 53 insertions, 38 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog index b9326c01..63b736cc 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,7 @@ +2004-08-27 Hasso Tepper <hasso at quagga.net> + + * Update vtysh man page to reflect changes in shell. + 2004-08-10 Hasso Tepper <hasso at quagga.net> * Updated man pages. diff --git a/doc/vtysh.1 b/doc/vtysh.1 index f6ad62b5..90aaff1b 100644 --- a/doc/vtysh.1 +++ b/doc/vtysh.1 @@ -1,14 +1,22 @@ -.TH VTYSH 1 "10 August 2004" "Quagga VTY shell" "Version 0.96.5" +.TH VTYSH 1 "27 August 2004" "Quagga VTY shell" "Version 0.96.5" .SH NAME vtysh \- a integrated shell for Quagga routing software .SH SYNOPSIS .B vtysh [ +.B \-f +.I config-file +] +[ .B \-b ] .br .B vtysh [ +.B \-f +.I config-file +] +[ .B \-c .I command ] @@ -34,8 +42,11 @@ is executed and vtysh exits. It's useful for gathering info from Quagga routing software from shell scripts etc. .IP "\fB\-e, \-\-execute \fIcommand\fP" -Alias for -c. It's only for compatibility with Zebra routing software and older -Quagga versions and this might be removed in future. +Alias for -c. It's here only for compatibility with Zebra routing software and +older Quagga versions. This will be removed in future. +.IP "\fB\-f, \-\-config-file \fIconfig-file\fP" +Specifies the config file to use for startup. If not specified this option will +likely default to \fB\fI/usr/local/etc/vtysh.conf\fR. .IP "\fB\-h, \-\-help\fP" Display a usage message on standard output and exit. .SH ENVIRONMENT VARIABLES diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog index e73317d4..1903c7c2 100644 --- a/vtysh/ChangeLog +++ b/vtysh/ChangeLog @@ -1,4 +1,13 @@ -2004-08-26 Hasso Tepper <hasso@estpak.ee> +2004-08-27 Hasso Tepper <hasso at quagga.net> + + * vtysh.c: Enable using ssh from ENABLE_NODE. + * vtysh_config.c: Make enable password uniq lines appear only once in + configuration. + * vtysh_main.c, vtysh_config.c, vtysh.h: Remove useless code which + searched configuration files from current directory. Add -f to + specify conf from command line. + +2004-08-26 Hasso Tepper <hasso at quagga.net> * *.c: Cosmetical changes - strip long lines, fix multiline comments style, indentation fixes, remove useless comments. diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index e8310d7c..503edb30 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -1999,6 +1999,7 @@ vtysh_init_vty () #endif install_element (ENABLE_NODE, &vtysh_telnet_cmd); install_element (ENABLE_NODE, &vtysh_telnet_port_cmd); + install_element (ENABLE_NODE, &vtysh_ssh_cmd); install_element (ENABLE_NODE, &vtysh_start_shell_cmd); install_element (ENABLE_NODE, &vtysh_start_bash_cmd); install_element (ENABLE_NODE, &vtysh_start_zsh_cmd); diff --git a/vtysh/vtysh.h b/vtysh/vtysh.h index abfb3ec4..895c8c01 100644 --- a/vtysh/vtysh.h +++ b/vtysh/vtysh.h @@ -60,7 +60,7 @@ void vtysh_config_write (); int vtysh_config_from_file (struct vty *, FILE *); -void vtysh_read_config (char *, char *, char *); +void vtysh_read_config (char *, char *); void vtysh_config_parse (char *); diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c index f518653f..86f5731b 100644 --- a/vtysh/vtysh_config.c +++ b/vtysh/vtysh_config.c @@ -228,7 +228,9 @@ vtysh_config_parse_line (char *line) { if (strncmp (line, "log", strlen ("log")) == 0 || strncmp (line, "hostname", strlen ("hostname")) == 0 - || strncmp (line, "password", strlen ("hostname")) == 0) + || strncmp (line, "password", strlen ("password")) == 0 + || strncmp (line, "enable password", + strlen ("enable password")) == 0) config_add_line_uniq (config_top, line); else config_add_line (config_top, line); @@ -365,7 +367,6 @@ vtysh_read_file (FILE *confp) /* Read up configuration file from file_name. */ void vtysh_read_config (char *config_file, - char *config_current_dir, char *config_default_dir) { char *cwd; @@ -396,32 +397,19 @@ vtysh_read_config (char *config_file, } else { - /* Relative path configuration file open. */ - if (config_current_dir) - confp = fopen (config_current_dir, "r"); - - /* If there is no relative path exists, open system default file. */ + /* No configuration specified from command line. Open system + * default file. */ + confp = fopen (config_default_dir, "r"); if (confp == NULL) { - confp = fopen (config_default_dir, "r"); - if (confp == NULL) - { - fprintf (stderr, "can't open configuration file [%s]\n", - config_default_dir); - exit (1); - } - else - fullpath = config_default_dir; - } + fprintf (stderr, "can't open configuration file [%s]\n", + config_default_dir); + exit (1); + } else - { - /* Rleative path configuration file. */ - cwd = getcwd (NULL, MAXPATHLEN); - fullpath = XMALLOC (MTYPE_TMP, - strlen (cwd) + strlen (config_current_dir) + 2); - sprintf (fullpath, "%s/%s", cwd, config_current_dir); - } - } + fullpath = config_default_dir; + } + vtysh_read_file (confp); fclose (confp); diff --git a/vtysh/vtysh_main.c b/vtysh/vtysh_main.c index 69a5358e..e862efd6 100644 --- a/vtysh/vtysh_main.c +++ b/vtysh/vtysh_main.c @@ -39,12 +39,8 @@ /* VTY shell program name. */ char *progname; -/* Configuration file name. Usually this is configurable, but vtysh - * has static configuration file only. */ +/* Configuration file name and directory. */ char *config_file = NULL; - -/* Configuration file and directory. */ -char *config_current = NULL; char config_default[] = SYSCONFDIR VTYSH_DEFAULT_CONFIG; /* Integrated configuration file. */ @@ -146,6 +142,7 @@ usage (int status) "Integrated shell for Quagga routing software suite. \n\n"\ "-b, --boot Execute boot startup configuration\n" \ "-c, --command Execute argument as command\n "\ + "-f, --config_file Set configuration file name\n"\ "-h, --help Display this help and exit\n\n" \ "Report bugs to %s\n", progname, ZEBRA_BUG_ADDRESS); @@ -160,6 +157,7 @@ struct option longopts[] = { "eval", required_argument, NULL, 'e'}, { "command", required_argument, NULL, 'c'}, { "help", no_argument, NULL, 'h'}, + { "config_file", required_argument, NULL, 'f'}, { 0 } }; @@ -209,7 +207,7 @@ main (int argc, char **argv, char **env) /* Option handling. */ while (1) { - opt = getopt_long (argc, argv, "be:c:h", longopts, 0); + opt = getopt_long (argc, argv, "be:c:hf:", longopts, 0); if (opt == EOF) break; @@ -229,8 +227,12 @@ main (int argc, char **argv, char **env) case 'h': usage (0); break; + /* XXX It isn't used in any way. */ case 'i': integrated_file = strdup (optarg); + case 'f': + config_file = optarg; + break; default: usage (1); break; @@ -256,7 +258,7 @@ main (int argc, char **argv, char **env) vtysh_connect_all (); /* Read vtysh configuration file. */ - vtysh_read_config (config_file, config_current, config_default); + vtysh_read_config (config_file, config_default); /* If eval mode. */ if (eval_flag) @@ -268,7 +270,7 @@ main (int argc, char **argv, char **env) /* Boot startup configuration file. */ if (boot_flag) { - vtysh_read_config (integrate_file, integrate_current, integrate_default); + vtysh_read_config (integrate_file, integrate_default); exit (0); } |