mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 18:44:54 +00:00
More vtysh fixes. Specifying configuration from command line works now.
This commit is contained in:
parent
9a0962651b
commit
67e29abc58
@ -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.
|
||||
|
17
doc/vtysh.1
17
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
|
||||
|
@ -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.
|
||||
|
@ -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);
|
||||
|
@ -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 *);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user