Refactor: Use enum for T_DATUM_CONFIG_ITEM.var_type

This commit is contained in:
Luke Dashjr 2025-03-11 22:01:05 +00:00
parent c2fba75809
commit 8fdf69c644
No known key found for this signature in database
GPG Key ID: A291A2C45D0C504A
2 changed files with 10 additions and 14 deletions

View File

@ -49,7 +49,7 @@
global_config_t datum_config;
const char *datum_conf_var_type_text[] = { "N/A", "boolean", "integer", "string", "string_array" };
const char *datum_conf_var_type_text[] = { "boolean", "integer", "string", "string_array" };
const T_DATUM_CONFIG_ITEM datum_config_options[] = {
// Bitcoind configs
@ -212,8 +212,6 @@ void datum_config_set_default(const T_DATUM_CONFIG_ITEM *c) {
((char *)c->ptr)[0] = 0;
break;
}
default: break;
}
}
@ -273,8 +271,6 @@ int datum_config_parse_value(const T_DATUM_CONFIG_ITEM *c, json_t *item) {
((char (*)[1024])c->ptr)[i][0] = 0;
return 1;
}
default: break;
}
return -1;
@ -320,7 +316,7 @@ int datum_read_config(const char *conffile) {
// item might be valid
j = datum_config_parse_value(&datum_config_options[i], item);
if (j == -1) {
DLOG_ERROR("Could not parse configuration option %s.%s. Type should be %s", datum_config_options[i].category, datum_config_options[i].name, (datum_config_options[i].var_type<DATUM_CONF_TYPES)?datum_conf_var_type_text[datum_config_options[i].var_type]:"UNKNOWN");
DLOG_ERROR("Could not parse configuration option %s.%s. Type should be %s", datum_config_options[i].category, datum_config_options[i].name, datum_conf_var_type_text[datum_config_options[i].var_type]);
return -1;
} else if (j == -2) {
DLOG_ERROR("Configuration option %s.%s exceeds maximum length of %d", datum_config_options[i].category, datum_config_options[i].name, datum_config_options[i].max_string_len);
@ -490,7 +486,7 @@ void datum_gateway_help(void) {
if (p < 0) p = 0;
if (p > 62) p = 62;
paddots[p] = 0;
printf(" \"%s\": %s %s (%s", datum_config_options[i].name, paddots, datum_config_options[i].description, (datum_config_options[i].var_type<DATUM_CONF_TYPES)?datum_conf_var_type_text[datum_config_options[i].var_type]:"UNKNOWN");
printf(" \"%s\": %s %s (%s", datum_config_options[i].name, paddots, datum_config_options[i].description, datum_conf_var_type_text[datum_config_options[i].var_type]);
paddots[p] = '.';
if (datum_config_options[i].required) {
printf(", REQUIRED)\n");

View File

@ -45,18 +45,18 @@
#include <jansson.h>
#define DATUM_CONF_BOOL 1
#define DATUM_CONF_INT 2
#define DATUM_CONF_STRING 3
#define DATUM_CONF_STRING_ARRAY 4
#define DATUM_CONF_TYPES 5
enum datum_conf_vartype {
DATUM_CONF_BOOL,
DATUM_CONF_INT,
DATUM_CONF_STRING,
DATUM_CONF_STRING_ARRAY,
};
typedef struct {
char category[32];
char name[64];
char description[512];
int var_type;
enum datum_conf_vartype var_type;
union {
int default_int;
bool default_bool;