summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vtysh/vtysh.c68
-rw-r--r--vtysh/vtysh.h2
-rw-r--r--vtysh/vtysh_config.c1
-rw-r--r--vtysh/vtysh_main.c15
4 files changed, 21 insertions, 65 deletions
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 29697b564f..cb98a11e90 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -77,8 +77,6 @@ struct vtysh_client vtysh_client[] =
enum vtysh_write_integrated vtysh_write_integrated = WRITE_INTEGRATED_UNSPECIFIED;
-extern char config_default[];
-
static void
vclient_close (struct vtysh_client *vclient)
{
@@ -2465,33 +2463,19 @@ write_config_integrated(void)
{
u_int i;
char line[] = "write terminal\n";
- FILE *fp, *fp1;
+ FILE *fp;
fprintf (stdout,"Building Configuration...\n");
- backup_config_file(integrate_default);
- backup_config_file(host.config);
-
- fp = fopen (integrate_default, "w");
+ backup_config_file(quagga_config);
+ fp = fopen (quagga_config, "w");
if (fp == NULL)
{
fprintf (stdout,"%% Can't open configuration file %s due to '%s'\n",
- integrate_default, safe_strerror(errno));
+ quagga_config, safe_strerror(errno));
return CMD_SUCCESS;
}
- fp1 = fopen (host.config, "w");
- if (fp1 == NULL)
- {
- fprintf (stdout,"%% Can't open configuration file %s due to '%s'\n",
- host.config, safe_strerror(errno));
- return CMD_SUCCESS;
- }
-
- vtysh_config_write ();
- vtysh_config_dump (fp1);
-
- fclose (fp1);
for (i = 0; i < array_size(vtysh_client); i++)
vtysh_client_config (&vtysh_client[i], line);
@@ -2500,20 +2484,14 @@ write_config_integrated(void)
fclose (fp);
- if (chmod (integrate_default, CONFIGFILE_MASK) != 0)
+ if (chmod (quagga_config, CONFIGFILE_MASK) != 0)
{
fprintf (stdout,"%% Can't chmod configuration file %s: %s\n",
- integrate_default, safe_strerror(errno));
+ quagga_config, safe_strerror(errno));
return CMD_WARNING;
}
- if (chmod (host.config, CONFIGFILE_MASK) != 0)
- {
- fprintf (stdout,"%% Can't chmod configuration file %s: %s (%d)\n",
- integrate_default, safe_strerror(errno), errno);
- return CMD_WARNING;
- }
- fprintf(stdout,"Integrated configuration saved to %s\n",integrate_default);
+ fprintf(stdout,"Integrated configuration saved to %s\n", quagga_config);
fprintf (stdout,"[OK]\n");
@@ -2527,7 +2505,7 @@ static bool vtysh_writeconfig_integrated(void)
switch (vtysh_write_integrated)
{
case WRITE_INTEGRATED_UNSPECIFIED:
- if (stat(integrate_default, &s) && errno == ENOENT)
+ if (stat(quagga_config, &s) && errno == ENOENT)
return false;
return true;
case WRITE_INTEGRATED_NO:
@@ -2547,42 +2525,18 @@ DEFUN (vtysh_write_memory,
int ret = CMD_SUCCESS;
char line[] = "write memory\n";
u_int i;
- FILE *fp;
+
+ fprintf (stdout, "Note: this version of vtysh never writes vtysh.conf\n");
/* If integrated Quagga.conf explicitely set. */
if (vtysh_writeconfig_integrated())
return write_config_integrated();
- else
- backup_config_file(integrate_default);
fprintf (stdout,"Building Configuration...\n");
-
+
for (i = 0; i < array_size(vtysh_client); i++)
ret = vtysh_client_execute (&vtysh_client[i], line, stdout);
-
- fp = fopen(host.config, "w");
- if (fp == NULL)
- {
- fprintf (stdout,"%% Can't open configuration file %s due to '%s'\n",
- host.config, safe_strerror(errno));
- return CMD_SUCCESS;
- }
-
- vtysh_config_write ();
- vtysh_config_dump (fp);
-
- fclose (fp);
-
- if (chmod (host.config, CONFIGFILE_MASK) != 0)
- {
- fprintf (stdout,"%% Can't chmod configuration file %s: %s\n",
- integrate_default, safe_strerror(errno));
- return CMD_WARNING;
- }
-
- fprintf (stdout,"[OK]\n");
-
return ret;
}
diff --git a/vtysh/vtysh.h b/vtysh/vtysh.h
index 7241b4c125..08b24731bc 100644
--- a/vtysh/vtysh.h
+++ b/vtysh/vtysh.h
@@ -53,6 +53,8 @@ enum vtysh_write_integrated {
extern enum vtysh_write_integrated vtysh_write_integrated;
+extern char *quagga_config;
+
void vtysh_init_vty (void);
void vtysh_init_cmd (void);
extern int vtysh_connect_all (const char *optional_daemon_name);
diff --git a/vtysh/vtysh_config.c b/vtysh/vtysh_config.c
index 7ad457ee7b..4ec0e00286 100644
--- a/vtysh/vtysh_config.c
+++ b/vtysh/vtysh_config.c
@@ -376,7 +376,6 @@ vtysh_read_config (const char *config_default_dir)
FILE *confp = NULL;
int ret;
- host_config_set (config_default_dir);
confp = fopen (config_default_dir, "r");
if (confp == NULL)
{
diff --git a/vtysh/vtysh_main.c b/vtysh/vtysh_main.c
index 751152e911..a82acda17d 100644
--- a/vtysh/vtysh_main.c
+++ b/vtysh/vtysh_main.c
@@ -67,8 +67,9 @@ struct zebra_privs_t vtysh_privs =
};
/* Configuration file name and directory. */
-char config_default[] = SYSCONFDIR VTYSH_DEFAULT_CONFIG;
-char quagga_config_default[] = SYSCONFDIR QUAGGA_DEFAULT_CONFIG;
+static char vtysh_config_always[] = SYSCONFDIR VTYSH_DEFAULT_CONFIG;
+static char quagga_config_default[] = SYSCONFDIR QUAGGA_DEFAULT_CONFIG;
+char *quagga_config = quagga_config_default;
char history_file[MAXPATHLEN];
/* Flag for indicate executing child command. */
@@ -373,7 +374,7 @@ main (int argc, char **argv, char **env)
vty_init_vtysh ();
/* Read vtysh configuration file before connecting to daemons. */
- vtysh_read_config(config_default);
+ vtysh_read_config(vtysh_config_always);
if (markfile)
{
@@ -512,17 +513,17 @@ main (int argc, char **argv, char **env)
history_truncate_file(history_file,1000);
exit (0);
}
-
+
/* Boot startup configuration file. */
if (boot_flag)
{
- vtysh_flock_config (integrate_default);
- int ret = vtysh_read_config (integrate_default);
+ vtysh_flock_config (quagga_config);
+ int ret = vtysh_read_config (quagga_config);
vtysh_unflock_config ();
if (ret)
{
fprintf (stderr, "Configuration file[%s] processing failure: %d\n",
- integrate_default, ret);
+ quagga_config, ret);
if (no_error)
exit (0);
else