Remove old configuration handling code

This expunges two large and cumbersome sets of if/else statements and
the T_CONFIGURATION_OPTIONS_INITIALIZER macro, all of which needed to
be kept in sync when adding/modifying configuration file parameters.
This commit is contained in:
Ian Barwick
2020-05-08 15:16:55 +09:00
parent 04aee7b406
commit d59cadd5f6
4 changed files with 26 additions and 944 deletions

View File

@@ -40,11 +40,11 @@ static sigjmp_buf *CONF_flex_fatal_jmp;
static char *CONF_scanstr(const char *s);
static int CONF_flex_fatal(const char *msg);
static bool ProcessConfigFile(const char *base_dir, const char *config_file, const char *calling_file, bool strict, KeyValueList *contents, t_configuration_options *options, ConfigFileSetting *settings, ItemList *error_list, ItemList *warning_list);
static bool ProcessConfigFile(const char *base_dir, const char *config_file, const char *calling_file, bool strict, KeyValueList *contents, ItemList *error_list, ItemList *warning_list);
static bool ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, const char *base_dir, KeyValueList *contents, t_configuration_options *options, ConfigFileSetting *settings, ItemList *error_list, ItemList *warning_list);
static bool ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, const char *base_dir, KeyValueList *contents, ItemList *error_list, ItemList *warning_list);
static bool ProcessConfigDirectory(const char *base_dir, const char *includedir, const char *calling_file, KeyValueList *contents, t_configuration_options *options, ConfigFileSetting *settings, ItemList *error_list, ItemList *warning_list);
static bool ProcessConfigDirectory(const char *base_dir, const char *includedir, const char *calling_file, KeyValueList *contents, ItemList *error_list, ItemList *warning_list);
static char *AbsoluteConfigLocation(const char *base_dir, const char *location, const char *calling_file);
@@ -98,16 +98,11 @@ STRING \'([^'\\\n]|\\.|\'\')*\'
%%
extern bool
ProcessRepmgrConfigFileOld(const char *config_file, const char *base_dir, t_configuration_options *options, ItemList *error_list, ItemList *warning_list)
{
return ProcessConfigFile(base_dir, config_file, NULL, true, NULL, options, NULL, error_list, warning_list);
}
extern bool
ProcessRepmgrConfigFile(const char *config_file, const char *base_dir, ItemList *error_list, ItemList *warning_list)
{
return ProcessConfigFile(base_dir, config_file, NULL, true, NULL, NULL, NULL, error_list, warning_list);
return ProcessConfigFile(base_dir, config_file, NULL, true, NULL, error_list, warning_list);
}
@@ -116,11 +111,11 @@ ProcessPostgresConfigFile(const char *config_file, const char *base_dir, KeyValu
{
printf("ProcessPostgresConfigFile(): base: %s file: %s\n", base_dir, config_file);
return ProcessConfigFile(base_dir, config_file, NULL, true, contents, NULL, NULL, error_list, warning_list);
return ProcessConfigFile(base_dir, config_file, NULL, true, contents, error_list, warning_list);
}
static bool
ProcessConfigFile(const char *base_dir, const char *config_file, const char *calling_file, bool strict, KeyValueList *contents, t_configuration_options *options, ConfigFileSetting *settings, ItemList *error_list, ItemList *warning_list)
ProcessConfigFile(const char *base_dir, const char *config_file, const char *calling_file, bool strict, KeyValueList *contents, ItemList *error_list, ItemList *warning_list)
{
char *abs_path;
bool success = true;
@@ -159,7 +154,7 @@ ProcessConfigFile(const char *base_dir, const char *config_file, const char *cal
}
else
{
success = ProcessConfigFp(fp, abs_path, calling_file, base_dir, contents, options, settings, error_list, warning_list);
success = ProcessConfigFp(fp, abs_path, calling_file, base_dir, contents, error_list, warning_list);
}
free(abs_path);
@@ -168,7 +163,7 @@ ProcessConfigFile(const char *base_dir, const char *config_file, const char *cal
}
static bool
ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, const char *base_dir, KeyValueList *contents, t_configuration_options *options, ConfigFileSetting *settings, ItemList *error_list, ItemList *warning_list)
ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, const char *base_dir, KeyValueList *contents, ItemList *error_list, ItemList *warning_list)
{
volatile bool OK = true;
volatile YY_BUFFER_STATE lex_buffer = NULL;
@@ -252,7 +247,7 @@ ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, con
* processed immediately.
*/
if (!ProcessConfigDirectory(base_dir, opt_value, config_file,
contents, options, settings,
contents,
error_list, warning_list))
OK = false;
yy_switch_to_buffer(lex_buffer);
@@ -262,7 +257,7 @@ ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, con
else if (base_dir != NULL && strcasecmp(opt_name, "include_if_exists") == 0)
{
if (!ProcessConfigFile(base_dir, opt_value, config_file,
false, contents, options, settings,
false, contents,
error_list, warning_list))
OK = false;
@@ -273,7 +268,7 @@ ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, con
else if (base_dir != NULL && strcasecmp(opt_name, "include") == 0)
{
if (!ProcessConfigFile(base_dir, opt_value, config_file,
true, contents, options, settings,
true, contents,
error_list, warning_list))
OK = false;
@@ -290,17 +285,7 @@ ProcessConfigFp(FILE *fp, const char *config_file, const char *calling_file, con
opt_name,
opt_value);
}
if (options != NULL)
{
parse_configuration_item_old(options,
error_list,
warning_list,
opt_name,
opt_value);
}
if (1) //options == NULL && contents == NULL)
else
{
parse_configuration_item(error_list,
warning_list,
@@ -376,7 +361,7 @@ cleanup:
* See ProcessConfigFp for further details.
*/
static bool
ProcessConfigDirectory(const char *base_dir, const char *includedir, const char *calling_file, KeyValueList *contents, t_configuration_options *options, ConfigFileSetting *settings, ItemList *error_list, ItemList *warning_list)
ProcessConfigDirectory(const char *base_dir, const char *includedir, const char *calling_file, KeyValueList *contents, ItemList *error_list, ItemList *warning_list)
{
char *directory;
DIR *d;
@@ -477,7 +462,7 @@ ProcessConfigDirectory(const char *base_dir, const char *includedir, const char
for (i = 0; i < num_filenames; i++)
{
if (!ProcessConfigFile(base_dir, filenames[i], calling_file,
true, contents, options, settings,
true, contents,
error_list, warning_list))
{
status = false;