{ .fd = -1, .name = "pimd", .flag = VTYSH_PIMD, .path = PIM_VTYSH_PATH, .next = NULL},
};
-/* Using integrated config from Quagga.conf. Default is no. */
-int vtysh_writeconfig_integrated = 1;
+enum vtysh_write_integrated vtysh_write_integrated = WRITE_INTEGRATED_UNSPECIFIED;
extern char config_default[];
"Set up miscellaneous service\n"
"Write configuration into integrated file\n")
{
- vtysh_writeconfig_integrated = 1;
+ vtysh_write_integrated = WRITE_INTEGRATED_YES;
return CMD_SUCCESS;
}
"Set up miscellaneous service\n"
"Write configuration into integrated file\n")
{
- vtysh_writeconfig_integrated = 0;
+ vtysh_write_integrated = WRITE_INTEGRATED_NO;
return CMD_SUCCESS;
}
return CMD_SUCCESS;
}
+static bool vtysh_writeconfig_integrated(void)
+{
+ struct stat s;
+
+ switch (vtysh_write_integrated)
+ {
+ case WRITE_INTEGRATED_UNSPECIFIED:
+ if (stat(integrate_default, &s) && errno == ENOENT)
+ return false;
+ return true;
+ case WRITE_INTEGRATED_NO:
+ return false;
+ case WRITE_INTEGRATED_YES:
+ return true;
+ }
+}
+
DEFUN (vtysh_write_memory,
vtysh_write_memory_cmd,
"write memory",
FILE *fp;
/* If integrated Quagga.conf explicitely set. */
- if (vtysh_writeconfig_integrated)
+ if (vtysh_writeconfig_integrated())
return write_config_integrated();
else
backup_config_file(integrate_default);
#define VTYSH_DEFAULT_CONFIG "vtysh.conf"
#define QUAGGA_DEFAULT_CONFIG "Quagga.conf"
+enum vtysh_write_integrated {
+ WRITE_INTEGRATED_UNSPECIFIED,
+ WRITE_INTEGRATED_NO,
+ WRITE_INTEGRATED_YES
+};
+
+extern enum vtysh_write_integrated vtysh_write_integrated;
+
void vtysh_init_vty (void);
void vtysh_init_cmd (void);
extern int vtysh_connect_all (const char *optional_daemon_name);
vector configvec;
-extern int vtysh_writeconfig_integrated;
-
struct config
{
/* Configuration node name. */
sprintf (line, "hostname %s", host.name);
vtysh_config_parse_line(line);
}
- if (!vtysh_writeconfig_integrated)
+ if (vtysh_write_integrated == WRITE_INTEGRATED_NO)
vtysh_config_parse_line ("no service integrated-vtysh-config");
+ if (vtysh_write_integrated == WRITE_INTEGRATED_YES)
+ vtysh_config_parse_line ("service integrated-vtysh-config");
user_config_write ();
}