Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[config] Handle defaults a part of static configuration. JB#45869
Runtime configuration changes are saved as "delta to values defined in
static configuration". Handling default values separately from static
configuration can cause unexpected values to get stuck on save.

Seed static configuration data with assumed defaults to rectify behavior
of delta save logic.

Signed-off-by: Simo Piiroinen <simo.piiroinen@jollamobile.com>
  • Loading branch information
spiiroin committed May 14, 2019
1 parent e26c0a4 commit 7967d5e
Showing 1 changed file with 4 additions and 13 deletions.
17 changes: 4 additions & 13 deletions src/usb_moded-config.c
Expand Up @@ -77,7 +77,6 @@ static char *config_get_network_interface (void);
static char *config_get_network_gateway (void);
static char *config_get_network_netmask (void);
static char *config_get_network_nat_interface(void);
static void config_setup_default_values (GKeyFile *settingsfile);
static int config_get_conf_int (const gchar *entry, const gchar *key);
char *config_get_conf_string (const gchar *entry, const gchar *key);
static char *config_get_kcmdline_string (const char *entry);
Expand Down Expand Up @@ -261,13 +260,6 @@ static char * config_get_network_nat_interface(void)
return config_get_conf_string(NETWORK_ENTRY, NETWORK_NAT_INTERFACE_KEY);
}

static void config_setup_default_values(GKeyFile *settingsfile)
{
LOG_REGISTER_CONTEXT;

g_key_file_set_string(settingsfile, MODE_SETTING_ENTRY, MODE_SETTING_KEY, MODE_DEVELOPER );
}

static int config_get_conf_int(const gchar *entry, const gchar *key)
{
LOG_REGISTER_CONTEXT;
Expand Down Expand Up @@ -407,7 +399,6 @@ set_config_result_t config_set_config_setting(const char *entry, const char *key
config_load_static_config(static_ini);

/* Merge static and dynamic settings */
config_setup_default_values(active_ini);
config_merge_data(active_ini, static_ini);
config_load_dynamic_config(active_ini);

Expand Down Expand Up @@ -823,6 +814,10 @@ static void config_load_static_config(GKeyFile *ini)
if( glob(pattern, 0, config_glob_error_cb, &gb) != 0 )
log_debug("no configuration ini-files found");

/* Seed with default values */
g_key_file_set_string(ini, MODE_SETTING_ENTRY, MODE_SETTING_KEY, MODE_DEVELOPER);

/* Override with content from config files */
for( size_t i = 0; i < gb.gl_pathc; ++i ) {
const char *path = gb.gl_pathv[i];
if( strcmp(path, USB_MODED_STATIC_CONFIG_FILE) )
Expand Down Expand Up @@ -909,9 +904,6 @@ bool config_init(void)
GKeyFile *static_ini = g_key_file_new();
GKeyFile *active_ini = g_key_file_new();

/* Setup built-in defaults */
config_setup_default_values(active_ini);

/* Load static configuration */
config_load_static_config(static_ini);

Expand Down Expand Up @@ -942,7 +934,6 @@ static GKeyFile *config_get_settings(void)
LOG_REGISTER_CONTEXT;

GKeyFile *ini = g_key_file_new();
config_setup_default_values(ini);
config_load_static_config(ini);
config_load_dynamic_config(ini);
return ini;
Expand Down

0 comments on commit 7967d5e

Please sign in to comment.