lib: Fix show running-config and write terminal

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2016-10-07 02:33:37 +00:00
parent 5e6a74d811
commit 066242b5c6

View File

@ -2160,34 +2160,41 @@ DEFUN (vtysh_write_terminal,
vtysh_write_terminal_cmd, vtysh_write_terminal_cmd,
"write terminal [<zebra|ripd|ripngd|ospfd|ospf6d|bgpd|isisd|pimd>]", "write terminal [<zebra|ripd|ripngd|ospfd|ospf6d|bgpd|isisd|pimd>]",
"Write running configuration to memory, network, or terminal\n" "Write running configuration to memory, network, or terminal\n"
"Write to terminal\n") "Write to terminal\n"
"For the zebra daemon\n"
"For the rip daemon\n"
"For the ripng daemon\n"
"For the ospf daemon\n"
"For the ospfv6 daemon\n"
"For the bgp daemon\n"
"For the isis daemon\n"
"For the pim daemon\n")
{ {
if (argc == 3) u_int i;
{ char line[] = "write terminal\n";
for (unsigned int i = 0; i < array_size(vtysh_client); i++)
if (begins_with(vtysh_client[i].name, argv[2]->arg))
break;
}
FILE *fp = NULL; FILE *fp = NULL;
if (vtysh_pager_name) if (vtysh_pager_name)
{ {
fp = popen (vtysh_pager_name, "w"); fp = popen (vtysh_pager_name, "w");
if (fp == NULL) if (fp == NULL)
{ {
perror ("popen"); perror ("popen");
exit (1); exit (1);
} }
} }
else else
fp = stdout; fp = stdout;
vty_out (vty, "Building configuration...%s", VTY_NEWLINE); vty_out (vty, "Building configuration...%s", VTY_NEWLINE);
vty_out (vty, "%sCurrent configuration:%s", VTY_NEWLINE, vty_out (vty, "%sCurrent configuration:%s", VTY_NEWLINE,
VTY_NEWLINE); VTY_NEWLINE);
vty_out (vty, "!%s", VTY_NEWLINE); vty_out (vty, "!%s", VTY_NEWLINE);
for (i = 0; i < array_size(vtysh_client); i++)
if ((argc < 3 ) || (strmatch (vtysh_client[i].name, argv[2]->text)))
vtysh_client_config (&vtysh_client[i], line);
/* Integrate vtysh specific configuration. */ /* Integrate vtysh specific configuration. */
vtysh_config_write (); vtysh_config_write ();
@ -2197,15 +2204,14 @@ DEFUN (vtysh_write_terminal,
{ {
fflush (fp); fflush (fp);
if (pclose (fp) == -1) if (pclose (fp) == -1)
{ {
perror ("pclose"); perror ("pclose");
exit (1); exit (1);
} }
fp = NULL; fp = NULL;
} }
vty_out (vty, "end%s", VTY_NEWLINE); vty_out (vty, "end%s", VTY_NEWLINE);
return CMD_SUCCESS; return CMD_SUCCESS;
} }