vtysh: improve config-write error reporting

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
David Lamparter 2016-11-09 15:05:14 +01:00
parent 87f44e2f0b
commit c10c5926cb
2 changed files with 12 additions and 7 deletions

View File

@ -2479,9 +2479,9 @@ vtysh_write_config_integrated(void)
fp = fopen (quagga_config, "w");
if (fp == NULL)
{
fprintf (stdout,"%% Can't open configuration file %s due to '%s'\n",
fprintf (stdout,"%% Error: failed to open configuration file %s: %s\n",
quagga_config, safe_strerror(errno));
return CMD_SUCCESS;
return CMD_WARNING;
}
fd = fileno (fp);
@ -2538,12 +2538,11 @@ vtysh_write_config_integrated(void)
fclose (fp);
printf ("Integrated configuration saved to %s\n", quagga_config);
if (err)
return CMD_WARNING;
fprintf (stdout,"Integrated configuration saved to %s\n", quagga_config);
fprintf (stdout,"[OK]\n");
printf ("[OK]\n");
return CMD_SUCCESS;
}
@ -2589,9 +2588,9 @@ DEFUN (vtysh_write_memory,
if (ret != CMD_SUCCESS)
{
printf("Warning: attempting direct configuration write without "
printf("\nWarning: attempting direct configuration write without "
"watchquagga.\nFile permissions and ownership may be "
"incorrect, or write may fail.\n");
"incorrect, or write may fail.\n\n");
ret = vtysh_write_config_integrated();
}
return ret;

View File

@ -113,6 +113,12 @@ void integrated_write_sigchld(int status)
zlog_warn("configuration write terminated");
}
if (reply[3] != CMD_SUCCESS) {
/* failure might be silent in vtysh without this */
static const char msg[] = "% Configuration write failed.\n";
write(integrated_result_fd, msg, strlen(msg));
}
/* don't care about failures here, if the connection is broken the
* return value will just be lost. */
write(integrated_result_fd, reply, sizeof(reply));