diff options
author | Alok Barsode <alok.barsode@linux.intel.com> | 2011-09-29 13:53:04 +0300 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-11-24 12:33:11 +0100 |
commit | 17d0eee00f7a247d279c17cb036672d3c5a67d77 (patch) | |
tree | f34cc483e7f7a143c9dd5ce219edd07dbc14d5a8 /src | |
parent | 358b68deea41bbbb4d6fc97123da7b3cf85a1c9a (diff) | |
download | connman-17d0eee00f7a247d279c17cb036672d3c5a67d77.tar.gz connman-17d0eee00f7a247d279c17cb036672d3c5a67d77.tar.bz2 connman-17d0eee00f7a247d279c17cb036672d3c5a67d77.zip |
storage: Add default values to settings file.
On a clean start (without default.profile) create the settings file
with default values. Here is a list of default values:
Offlinemode = off.
Wifi = disabled.
bluetooth = disabled.
ethernet = disabled.
3G = disabled.
WiMAX = disabled.
The reason for offlinemode to be off here is that any changes to
the technology will not be recorded if we start in offlinemode.
Fixes BMC#24285
Diffstat (limited to 'src')
-rw-r--r-- | src/storage.c | 83 |
1 files changed, 58 insertions, 25 deletions
diff --git a/src/storage.c b/src/storage.c index 1d14e138..51404c86 100644 --- a/src/storage.c +++ b/src/storage.c @@ -351,73 +351,106 @@ void __connman_storage_migrate() if(pathname == NULL) return; - /* If default.profile doesn't exists, no need to migrate. */ + /* Copy global settings from default.profile to settings. */ + keyfile = g_key_file_new(); + + /* If default.profile doesn't exists, create settings with defaults. */ keyfile_def = storage_load(pathname); if (keyfile_def == NULL) { - g_free(pathname); - return; - } + g_key_file_set_boolean(keyfile, "global", + "OfflineMode", FALSE); - /* Copy global settings from default.profile to settings. */ - keyfile = g_key_file_new(); + g_key_file_set_boolean(keyfile, "WiFi", + "Enable", FALSE); + + g_key_file_set_boolean(keyfile, "Bluetooth", + "Enable", FALSE); + + g_key_file_set_boolean(keyfile, "Wired", + "Enable", FALSE); + + g_key_file_set_boolean(keyfile, "3G", + "Enable", FALSE); + + g_key_file_set_boolean(keyfile, "WiMAX", + "Enable", FALSE); + + goto done; + } /* offline mode */ val = g_key_file_get_boolean(keyfile_def, "global", "OfflineMode", &error); - if (error != NULL) + if (error != NULL) { g_clear_error(&error); - else - g_key_file_set_boolean(keyfile, "global", + val = FALSE; + } + + g_key_file_set_boolean(keyfile, "global", "OfflineMode", val); /* wifi */ val = g_key_file_get_boolean(keyfile_def, "WiFi", "Enable", &error); - if (error != NULL) + if (error != NULL) { g_clear_error(&error); - else - g_key_file_set_boolean(keyfile, "WiFi", + val = FALSE; + } + + g_key_file_set_boolean(keyfile, "WiFi", "Enable", val); /* bluetooth */ val = g_key_file_get_boolean(keyfile_def, "Bluetooth", "Enable", &error); - if (error != NULL) + if (error != NULL) { g_clear_error(&error); - else - g_key_file_set_boolean(keyfile, "Bluetooth", + val = FALSE; + } + + g_key_file_set_boolean(keyfile, "Bluetooth", "Enable", val); /* wired */ val = g_key_file_get_boolean(keyfile_def, "Wired", "Enable", &error); - if (error != NULL) + if (error != NULL) { g_clear_error(&error); - else - g_key_file_set_boolean(keyfile, "Wired", + val = FALSE; + } + + g_key_file_set_boolean(keyfile, "Wired", "Enable", val); /* 3G */ val = g_key_file_get_boolean(keyfile_def, "3G", "Enable", &error); - if (error != NULL) + if (error != NULL) { g_clear_error(&error); - else - g_key_file_set_boolean(keyfile, "3G", + val = FALSE; + } + + g_key_file_set_boolean(keyfile, "3G", "Enable", val); /* WiMAX */ val = g_key_file_get_boolean(keyfile_def, "WiMAX", "Enable", &error); - if (error != NULL) + if (error != NULL) { g_clear_error(&error); - else - g_key_file_set_boolean(keyfile, "WiMAX", + val = FALSE; + } + + g_key_file_set_boolean(keyfile, "WiMAX", "Enable", val); +done: __connman_storage_save_global(keyfile); g_key_file_free(keyfile); - g_key_file_free(keyfile_def); + + if (keyfile_def) + g_key_file_free(keyfile_def); + g_free(pathname); } |